Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud messaging Android手机不会收到SNS推送通知_Google Cloud Messaging_Amazon Sns - Fatal编程技术网

Google cloud messaging Android手机不会收到SNS推送通知

Google cloud messaging Android手机不会收到SNS推送通知,google-cloud-messaging,amazon-sns,Google Cloud Messaging,Amazon Sns,我有一些安卓手机。我使用Python中的boto,通过Amazon SNS将消息推送到GCM。一部手机总是接收信息。另一个没有 我第一次向有问题的手机发送消息时,它似乎成功了,但什么也没有通过。当我转到AWS控制台并查看注册到我的应用程序的端点列表时,它现在在Enabled列下显示false 第二次发送消息时,boto会引发一个异常,其中包含一条消息:Endpoint已禁用 android手机无法接收GCM消息的原因有哪些?是否有可以禁用此功能的用户设置?也许你已经解决了,但是,我会发布答案供将

我有一些安卓手机。我使用Python中的boto,通过Amazon SNS将消息推送到GCM。一部手机总是接收信息。另一个没有

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

第二次发送消息时,boto会引发一个异常,其中包含一条消息:Endpoint已禁用


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

也许你已经解决了,但是,我会发布答案供将来使用。这是一篇围绕这个主题的好文章,介绍了一些关于这个问题的可能性


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

令牌可能已过期,或者可能已从应用程序的存储中清除。在Android应用程序上,创建一个扩展FireBaseInstancedService的类并重写此函数:

@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。这样,您的后端将始终知道向何处发送通知