GCM应用程序ID,实例

时间:2015-07-07 04:46:19

标签: android google-cloud-messaging

我想澄清一下应用程序ID和实例ID是否相同?还有如何在实时场景中使用它们。当我们获得注册令牌时,我的理解是否正确,应用程序ID是否正常,注册令牌知道推送通知适用于哪个应用程序?该文档建议在应用程序服务器中保留Instance ID以跟踪应用程序,但不确定这意味着什么类型的跟踪。

2 个答案:

答案 0 :(得分:3)

客户也必须注册,当他们这样做时,他们将收到他们的代币。

客户端使用实例ID来生成和刷新令牌。他们这样做是通过提供发件人ID来识别可以将通知推送到客户端的应用程序,这将是您的服务器。

ApplicationID是正在注册接收消息的客户端应用程序。

来自文档:

  

Android应用程序需要先注册GCM连接服务器才能接收消息。当应用程序注册时,它会收到注册令牌并将其发送到应用服务器。客户端应用程序应存储一个布尔值,指示是否已将注册令牌发送到服务器。

     

Google提供了Instance ID API来处理注册令牌的创建和更新。要获取令牌,请调用instanceID.getToken,提供应用服务器的发件人ID并将范围设置为GoogleCloudMessaging.INSTANCE_ID_SCOPE。不要在主线程中调用此方法;相反,使用扩展IntentService的服务,如下所示:

InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
        GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

跟踪这些令牌意味着您应该在注册程序中向客户询问其令牌。获得客户端令牌后,应将其存储到数据库中。这是推送应用程序开发人员的责任。

GCM需要您要发送的有效负载以及令牌或令牌列表。除非您提供令牌,否则GCM无法知道令牌。

以下是实例ID说明的链接:

instaceID

答案 1 :(得分:0)

*是的,当您注册GCM服务的应用程序时,您可以从Google控制台获得两个ID。当时Google控制台提供了一个AppID,用于在GCM服务器上注册我们的应用程序。     现在第二,当您在GCM服务器上注册您的应用程序时,它将为我们提供唯一的DeviceID,尽管所有可以使用相同应用程序的设备都是唯一的.DeviceID的目的是唯一地标识可以使用该特定应用程序ID注册的所有设备。