使用Google Cloud Messaging注册应用程序

时间:2016-10-16 20:16:16

标签: android google-cloud-messaging

我正在尝试了解应用是如何在Google云端消息中注册的。我正在查看Google Play应用中的代码,如下所示:

paramVarArgs = a(paramVarArgs);
Log.v("GCMRegistrar", "Registering app " + paramContext.getPackageName() + " of senders " + paramVarArgs);
Intent localIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
localIntent.setPackage("com.google.android.gsf");
localIntent.putExtra("app", PendingIntent.getBroadcast(paramContext, 0, new Intent(), 0));
localIntent.putExtra("sender", paramVarArgs);
paramContext.startService(localIntent);

我不太明白正在注册的应用程序最终是如何收到意图的,因为这似乎是通过包名com.google.android.gsf(Google服务框架)向应用发送意图。我查看了使用gsf app中的REGISTER操作调用的服务,但它似乎也没有发送广播。我很困惑这一切是如何运作的。有人可以解释一下吗?非常感谢提前!!

1 个答案:

答案 0 :(得分:1)

如果您要查看Registering Client Apps文档:

enter image description here

Instance ID API

  

实例ID为您的应用实例提供唯一ID。您可以为AndroidiOS个应用实施实例ID。

实例ID生命周期

  
      
  1. 当您的应用上线时,Instance ID服务会发出 InstanceID InstanceID 由公钥/私钥对支持,其中私钥存储在本地设备上,公钥在Instance ID服务中注册。
  2.   
  3. 您的应用可以使用 InstanceID 方法在需要时请求全新 getID() 。如果您的应用程序支持您的应用程序,您的应用程序可以将其存储在您的服务器上。
  4.   
  5. 您的应用可以根据需要使用 getToken() 方法从实例ID服务请求令牌,并且如 InstanceID ,您的应用也可以在您自己的服务器上存储令牌。发给您应用的所有令牌都属于应用 InstanceID
  6.   
  7. 令牌是唯一且安全的,但是在安全问题或用户在设备恢复期间卸载并重新安装应用时,您的应用或Instance ID服务可能需要刷新令牌。您的应用必须实现一个侦听器来响应来自Instance ID服务的令牌刷新请求。
  8.   

enter image description here

以下是生成ID的代码示例:

String iid = InstanceID.getInstance(context).getId();

希望这有帮助。