关于android:一个应用有多个gcm用户

Several gcm users for one app

我对客户注册Google Cloud Messaging有疑问。

例如,某人安装了装有android应用的智能手机。手机将由拥有不同应用程序帐户(不等于google,facebook等帐户)的多个用户使用。

我想以某种方式绑定应用程序帐户和GCM注册令牌。原则上是否有可能-在不重新安装应用程序的情况下-不同的应用程序用户收到不同的注册令牌,然后-仅收到他们的消息?

GCM注册令牌通常附加在设备ID或Google帐户上吗?

先谢谢您。


InstanceID绑定到特定设备上已安装的应用程序实例。发送者(您的应用程序服务器)也会影响令牌的获取。如果您具有相同的应用程序实例和相同的发送者,则您将获得相同的令牌(直到由于某种原因而被吊销)。

要在单个应用程序实例中定位不同的用户,您必须在下游消息的有效负载中包括用户标识符。然后根据邮件发送给哪个用户来决定要做什么。这将意味着即使寻址的用户当前未登录,您也将发送消息。

您可以在切换用户时撤消并重新生成令牌,但这不是该API的预期用途。


注意:实例ID为您的Android和iOS应用的每个实例提供唯一的ID。

让我们弄清楚在GCM上注册设备时的重点是什么

  • 在安装应用程序时,仅安装了该应用程序(没有其他内容)
  • 当某些用户登录到该应用程序时,然后(然后仅)在GCM上明确注册该应用程序。注册客户端应用
  • 在GCM上注册应用程序时,您将从GCM获取registrationToken,您需要将其保存在服务器中。
  • 现在,让我们了解如何处理一个由多个用户使用的应用程序的GCM。
    当用户登录到应用程序时,

    1
    2
    3
    4
    5
    Step 1 : Register the app on GCM
    Step 2 : Registration the app on GCM, will give you a registration token
    Step 3 : Update the user's information with the registration token in your server
    Step 4 : When the user logout, remove the registration token from the user's information in your server
    Step 5 : When other user's login, refresh the token and follow Step 3


    是的,有可能。

    记住如何使用Application的程序包生成唯一的API密钥。对于每个应用
    以及用于标识传入的推送消息的唯一服务器密钥。

    您的应用程序包用于区分来自云的黑白通知。