Pat*_*ick 19 android google-cloud-messaging
使用最新的GCM更新(3.0)是否仍需要在重启等情况下处理刷新注册令牌? 本文讨论了使GCM可靠并涵盖注册令牌可以更改的几个条件.这些步骤是否必须在最新版本下?在IO 2015讨论期间,他们谈到了注册令牌是好的,直到从设备上卸载应用程序.
InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Run Code Online (Sandbox Code Playgroud)
bit*_*tek 18
注册令牌不应在重新启动后刷新,但在其他情况下可能会刷新,因此您需要处理它.
使用更新的API,您需要实现InstanceIDListenerService以处理令牌刷新,如google-services中所示#smart #gcm示例应用程序
/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. This call is initiated by the
* InstanceID provider.
*/
// [START refresh_token]
@Override
public void onTokenRefresh() {
// Fetch updated Instance ID token and notify our app's server of any changes (if applicable).
Intent intent = new Intent(this, RegistrationIntentService.class);
startService(intent);
}
Run Code Online (Sandbox Code Playgroud)
关于可能发生令牌刷新的其他情况.
现有的注册令牌可能在许多情况下不再有效,包括:
- 如果客户端应用程序注销GCM.
- 如果客户端应用程序自动取消注册,则可能会在用户卸载应用程序时发生.例如,在iOS上,如果APNS反馈服务将APNS令牌报告为无效.
- 如果注册令牌过期(例如,Google可能决定刷新注册令牌,或者iOS设备的APNS令牌已过期).
- 如果客户端应用程序已更新,但新版本未配置为接收消息.对于所有这些情况,请从应用服务器中删除此注册令牌,然后停止使用它来发送消息.
为了保护客户端应用和应用服务器免受潜在的恶意重用注册令牌,您应该定期从服务器启动令牌刷新.从服务器端启动GCM注册令牌刷新时,客户端应用程序必须使用GCM注册客户端/服务器握手处理tokenRefreshed消息
有关身份和令牌刷新过程的详细信息,请参阅API参考.
| 归档时间: |
|
| 查看次数: |
12738 次 |
| 最近记录: |