Pregunta ¿Cuándo se llamará a InstanceIDListenerService y cómo probarlo?


Con los últimos cambios en Android GCM ahora se proporciona un InstanceIDListenerService para poder escuchar las actualizaciones de token anulando el método onTokenRefresh.

¿Pero cuándo se llamará este método? ¿Y hay alguna forma de probarlo manualmente?


32
2018-06-04 07:14


origen


Respuestas:


Para probarlo manualmente desde la línea de comando, ejecuta:

adb shell am startservice -a com.google.android.gms.iid.InstanceID --es "CMD" "RST" -n your.package.name/your.own.MyInstanceIDListenerService

dónde:

  • El paquete de su aplicación es your.package.name
  • El nombre de clase de su implementación de InstanceIDListenerService es your.own.MyInstanceIDListenerService

Esto enviará una intención al servicio con los extras esperados por la clase base.

Para que esto funcione, el servicio debe configurarse para exported  temporalmente:

<service
    android:name="your.own.MyInstanceIDListenerService"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.gms.iid.InstanceID"/>
    </intent-filter>
</service>

Nota: esto debería solo se debe hacer temporalmente y nunca ser exportado en producción o de lo contrario otras aplicaciones podrían acceder a su servicio.


42
2017-08-09 18:24



onTokenRefresh () se invocará si el token de su aplicación ha sido actualizado por el servicio de ID de instancia. La razón principal por la que se llama a onTokenRefresh () es permitirle actualizar su servidor de aplicaciones con el nuevo token para que pueda enviar mensajes a su aplicación.

No debería tener que probar el valor del token de forma manual. El token es utilizado principalmente por su servidor de aplicaciones para enviar mensajes a su aplicación. Por lo tanto, cuando la aplicación se ejecuta por primera vez, debe llamar a InstanceID.getToken () y enviar el token a su servidor. Luego, más tarde, si se actualiza el token, vuelva a llamar a InstanceID.getToken () y envíe el nuevo valor a su servidor nuevamente.

Marque aquí para una ejemplo.


2
2018-06-09 04:13