我有一个应用程序,允许用户使用服务器发放的凭证登录,例如简单的用户名和密码。
因此,用户启动应用程序,输入用户名和密码,服务器对用户进行身份验证并保存此信息(详细信息在此情况下没有真正作用)。
我需要实现什么?
在我的服务器需要通知用户时,有一些事件。让我们考虑订单状态已更改。如果是这样,我需要通过状态栏中的通知通知用户。
我决定使用GCM完成这项任务。
我阅读了有关此事的信息,并提出了一些问题。
因此,用户启动应用程序,输入用户名和密码,服务器对用户进行身份验证并保存此信息(详细信息在此情况下没有真正作用)。
我需要实现什么?
在我的服务器需要通知用户时,有一些事件。让我们考虑订单状态已更改。如果是这样,我需要通过状态栏中的通知通知用户。
我决定使用GCM完成这项任务。
我阅读了有关此事的信息,并提出了一些问题。
- 当用户从GCM服务中获取注册ID时,在Android设备上,它是固定的还是可以更改的。据我所知,不能保证它始终相同。那么我该如何处理此ID的刷新。 或者,如果我不调用GoogleCloudMessaging.getInstance(applicationContext).register,它将保持不变,直到我重新注册,甚至如果我调用register方法,它也可以返回相同的ID。我可以将此ID保存在SharedPreferences中以供长期使用吗?或者它会在一段时间后失效吗?
- 主要问题是我需要处理同一设备上的多个用户。据我所知,由GCM服务发放的注册ID与设备和应用程序绑定。因此,如果新用户注销并以新凭证(新用户帐户)登录,我该如何处理?例如,我可以将此ID存储在我的服务器的数据库中,并在用户从应用程序内注销帐户后使用它,然后从数据库中删除它,并且如果同一设备上的用户使用另一个帐户登录,则可以使用注册ID来通知另一个用户吗?这会有效吗?或者我漏掉了什么。
- 如何处理用户多个设备。我的群组通知密钥将是来自用户帐户(电子邮件,用户名等)的某些唯一数据。如果我理解正确,我需要在用户使用其我的服务器帐户登录的所有设备上获取注册ID,并将其映射到一个通知密钥。我应该自己处理通知的拒绝,然后向GCM服务器发送上行消息,以通知其他用户设备已被拒绝吗?