Pertanyaan Kapan InstanceIDListenerService dipanggil dan cara mengujinya?


Dengan perubahan terakhir pada Android GCM sekarang, InstanceIDListenerService disediakan untuk dapat mendengarkan token refresh dengan mengesampingkan metode onTokenRefresh.

Tetapi kapan metode ini akan dipanggil? Dan apakah ada cara untuk mengujinya secara manual?


32
2018-06-04 07:14


asal


Jawaban:


Untuk mengujinya secara manual dari baris perintah yang dijalankan:

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

dimana:

  • Paket aplikasi Anda adalah your.package.name
  • Nama kelas implementasi InstanceIDListenerService Anda your.own.MyInstanceIDListenerService

Ini akan mengirim niat ke layanan dengan ekstra yang diharapkan oleh kelas dasar.

Agar ini berfungsi, layanan perlu disetel exported  untuk sementara:

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

catatan: ini seharusnya hanya dilakukan sementara dan tidak pernah diekspor dalam produksi atau aplikasi lain dapat mengakses layanan Anda.


42
2017-08-09 18:24



onTokenRefresh () akan dipanggil jika token untuk aplikasi Anda telah diperbarui oleh layanan ID Instance. Alasan utama untuk onTokenRefresh () dipanggil adalah memungkinkan Anda memperbarui server aplikasi dengan token baru sehingga dapat mengirim pesan ke aplikasi Anda.

Anda tidak perlu menguji nilai token secara manual. Token digunakan terutama oleh server aplikasi Anda untuk mengirim pesan ke aplikasi Anda. Jadi ketika aplikasi Anda pertama kali menjalankan Anda harus memanggil InstanceID.getToken () dan mengirim token ke server Anda. Kemudian, jika token diperbarui Anda memanggil InstanceID.getToken () lagi dan mengirim nilai baru ke server Anda lagi.

Cek di sini untuk sebuah contoh.


2
2018-06-09 04:13