2014-07-10 2 views
1

У меня есть несколько телефонов на базе Android. Я нажимаю на них сообщения через Amazon SNS на GCM, используя boto в Python. Один телефон всегда получает сообщения. Другой - нет.Телефон Android не получит оповещения SNS push

В первый раз, когда я отправляю сообщение на проблемный телефон, он кажется успешным, но ничего не происходит. Когда я перехожу на консоль AWS и просматриваю список конечных точек, зарегистрированных в моем приложении, теперь он показывает «false» в столбце Enabled.

Второй раз, когда я отправить сообщение, бото вызывает исключение с сообщением в нем: «Endpoint Отключено»

Каковы некоторые причины, почему андроид телефон не будет получать сообщения GCM? Существуют ли пользовательские настройки, которые могут отключить это?

ответ

0

Возможно, вы выяснили, однако, я отправляю ответ для будущего использования. This is хорошая статья по этой теме и посвящена некоторым возможностям проблемы.

Основываясь на вашем объяснении, я думаю, что токен для телефона android истек, и его необходимо перерегистрировать с помощью GCM, тогда конечная точка SNS должна быть обновлена.

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 этой конечной точки. Таким образом, ваш сервер всегда будет знать, куда отправить уведомление.