Nous avons configuré SNS pour envoyer des notifications push pour notre application Android. Le processus étape par étape est la suivante:Gestion de la désinstallation de l'application Android avec Amazon SNS
Chaque fois que l'application arrive, il génère l'enregistrement GCM en faisant un appel
register
. L'extrait de code est ci-dessous:private String registerOnGCM(){ try { GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext()); String token = gcm.register(Globals.GCM_TOKEN); return token; } catch (IOException e) { Log.e(TAG, "failed to complete token refresh process"); } return null; }
où Globals.GCM_TOKEN est l'ID d'application obtenue en faisant l'enregistrement FCM pour l'application.
App appelle le serveur principal et transmet cet identifiant d'enregistrement.
Le serveur principal vérifie si cet ID d'enregistrement est nouveau ou non. S'il est nouveau, il crée un nouveau point de terminaison SNS à l'aide de cet ID d'enregistrement, puis souscrit le nouveau point de terminaison à la rubrique créée pour l'utilisateur. Et il persiste toutes ces données dans notre base de données pour référence future.
Lors de l'envoi d'une notification push à tous les dispositifs pour l'utilisateur, nous diffusons simplement le message au sujet créé pour cet utilisateur et le message est envoyé à tous les appareils appartenant à l'utilisateur. Cela fonctionne très bien impliquant le cas de plusieurs appareils avec notre application installée sur chacun d'eux. Le problème survient lors de la désinstallation et de la réinstallation. Après la réinstallation, l'appel d'enregistrement GCM renvoie un ID d'enregistrement distinct et l'envoie au serveur principal. Le backend le détecte comme un nouveau périphérique et l'enregistre pour SNS et l'utilisateur finit avec plusieurs points de terminaison SNS même si le périphérique est le même. Lorsque vous envoyez une notification au sujet pour cet utilisateur, le même appareil reçoit deux notifications push. Probablement parce que l'ancien point de terminaison est toujours en vie, il aurait dû être désactivé.
Donc, ma question: Comment faire pour que dans le cas de test mentionné, une seule notification push est envoyée à l'appareil Android.