Quand InstanceIDListenerService être appelé et comment le tester?
Avec les dernières modifications apportées à Android GCM maintenant un InstanceIDListenerService est fourni pour être en mesure d'écouter jeton actualise en remplaçant la onTokenRefresh méthode.
Mais quand cette méthode d'être appelé? Et est-il un moyen de tester manuellement?
- Il n'y a pas de moyen facile de tester manuellement, mais à partir de l'ID d'Instance du Cycle de vie page, il indique que
Tokens are unique and secure, but your app or the Instance ID service may need to refresh tokens in the event of a security issue or when a user uninstalls and reinstalls your app during device restoration
. Donc, vous voudrez peut-être essayer de réinstaller votre application lorsque l'appareil restauration.
Vous devez vous connecter pour publier un commentaire.
Pour tester manuellement à partir de la ligne de commande exécuter:
où:
Cela va envoyer une intention de le service avec les extras prévu par la classe de base.
Pour que cela fonctionne, le service doit être mis à
exported
temporairement:Remarque: cela devrait être effectuées uniquement temporairement et de ne jamais être exportée de la production ou encore d'autres applications peuvent accéder à votre service.
Error: Requires permission not exported from uid
- vous aurez besoin de temporaire pour changer dans votre manifesteandroid:exported="true"
pour votre service (et n'oubliez pas de revenir après la fin du test).adb shell am startservice -a com.google.android.gms.iid.InstanceID --es "CMD" "RST" your.package.name
adb shell am startservice -a com.google.firebase.INSTANCE_ID_EVENT --es "CMD" "RST" -n com.my.package/com.my.package.InstanceIDListenerService
onTokenRefresh() sera appelée si le jeton pour votre application a été mise à jour par l'ID d'Instance de service. La raison principale pour onTokenRefresh() appelée est de vous permettre de mettre à jour votre serveur d'application avec le nouveau jeton de sorte qu'il peut envoyer des messages à votre application.
Vous ne devriez pas avoir à tester la valeur du jeton manuellement. Le jeton est principalement utilisé par votre serveur d'application pour envoyer des messages à votre application. Ainsi, lorsque votre application s'exécute en premier vous devez appeler InstanceID.getToken() et envoyer le jeton à votre serveur. Puis, plus tard, si le jeton est mise à jour que vous appelez InstanceID.getToken() à nouveau et envoyer la nouvelle valeur à votre serveur de nouveau.
Vérifier ici un exemple.