Contoh berikut akan membantu Anda menerapkan ID Instance di klien Android. Perhatikan bahwa contoh ini menggunakan cakupan GCM, yang hanya berguna untuk tujuan demonstrasi karena Google Cloud Messaging telah dihentikan penggunaannya.
Menyiapkan Layanan Google Play
Untuk menulis aplikasi klien, gunakan SDK layanan Google Play, seperti yang dijelaskan dalam Menyiapkan SDK Layanan Google Play. Play Services Library mencakup Instance ID Library.
Mendapatkan ID Instance
Baris kode berikut menampilkan ID Instance:
String iid = InstanceID.getInstance(context).getId();
Membuat token
Untuk membuat token, Anda memerlukan Project ID yang dibuat oleh Google Developers Console.
String authorizedEntity = PROJECT_ID; // Project id from Google Developer Console
String scope = "GCM"; // e.g. communicating using GCM, but you can use any
// URL-safe characters up to a maximum of 1000, or
// you can also leave it blank.
String token = InstanceID.getInstance(context).getToken(authorizedEntity,scope);
Mengelola token dan ID Instance
Instance ID memungkinkan Anda menghapus dan memperbarui token.
Menghapus token dan ID Instance
String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
Anda juga dapat menghapus Instance ID itu sendiri, termasuk semua token terkait. Lain kali Anda memanggil getInstance()
, Anda akan mendapatkan ID Instance baru:
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
Token refresh
Layanan ID Instance memulai callback secara berkala (misalnya, setiap 6 bulan), yang meminta aplikasi Anda memperbarui tokennya. Perangkat ini juga dapat memulai callback saat:
- Ada masalah keamanan; misalnya, masalah SSL atau platform.
- Informasi perangkat tidak lagi valid; misalnya, pencadangan dan pemulihan.
- Layanan ID Instance terpengaruh.
Terapkan layanan pemroses ID Instance di aplikasi Anda untuk menerima panggilan balik ini:
public class MyInstanceIDService extends InstanceIDListenerService {
public void onTokenRefresh() {
refreshAllTokens();
}
private void refreshAllTokens() {
// assuming you have defined TokenList as
// some generalized store for your tokens
ArrayList<TokenList> tokenList = TokensList.get();
InstanceID iid = InstanceID.getInstance(this);
for(tokenItem : tokenList) {
tokenItem.token =
iid.getToken(tokenItem.authorizedEntity,tokenItem.scope,tokenItem.options);
// send this tokenItem.token to your server
}
}
};
Anda juga harus mengonfigurasi layanan ini dalam file Manifes untuk project:
<service android:name=".MyInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>