Android手机无法接收SNS推送通知

时间:2014-07-10 23:22:51

标签: google-cloud-messaging amazon-sns

我有一些Android手机。我正在使用Python中的boto将消息通过Amazon SNS推送到GCM。一部手机始终收到消息。另一个没有。

我第一次向问题手机发送消息时,似乎成功但没有任何消息通过。当我转到AWS控制台并查看注册到我的应用程序的端点列表时,它现在显示" false"在Enabled列下。

第二次发送消息时,boto引发了一个异常,其中包含一条消息:" Endpoint is Disabled"

Android手机无法接收GCM消息的原因是什么?是否有用户设置可以禁用此功能?

2 个答案:

答案 0 :(得分:0)

可能你已经明白了,但是,我发布了答案以备将来使用。 This is围绕这一主题撰写了一篇很好的文章,并提出了解决问题的一些可能性。

根据您的解释,我认为Android手机的令牌已过期,需要重新注册GCM,然后应更新SNS端点。

答案 1 :(得分:0)

令牌可能已过期,或者可能已从应用的存储中清除。在Android应用中,创建一个扩展FirebaseInstanceIdService并覆盖此功能的类:

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(refreshedToken);
}

还可以创建自己的sendRegistrationToServer。在后端,实现一个接收令牌并将其分配给该端点的ARN的函数。这样,您的后端将始终知道将通知发送到何处。