Aşağıdaki örnekler, Android istemcisinde örnek kimliğini uygulamanıza yardımcı olur. Bu örneklerde yalnızca gösterim amaçlı olarak yararlı olan GCM kapsamının kullanıldığını unutmayın. Bunun nedeni, Google Cloud Messaging'in kullanımdan kaldırılmış olmasıdır.
Google Play Hizmetleri'ni kurma
İstemci uygulamanızı yazmak için Google Play Hizmetleri SDK'sını ayarlama bölümünde açıklandığı gibi Google Play Hizmetleri SDK'sını kullanın. Play Hizmetleri Kitaplığı, örnek kimliği kitaplığını içerir.
Örnek kimliği alma
Aşağıdaki kod satırı bir örnek kimliği döndürür:
String iid = InstanceID.getInstance(context).getId();
Jeton oluşturma
Jeton oluşturmak için Google Developers Console tarafından oluşturulan bir proje kimliği gerekir.
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);
Jetonları ve örnek kimliklerini yönetme
Örnek kimliği, jetonları silmenize ve yenilemenize olanak tanır.
Jetonları ve örnek kimliklerini silme
String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
Ayrıca, ilişkili tüm jetonlar dahil olmak üzere örnek kimliğini de silebilirsiniz. Bir dahaki sefere getInstance()
'ı aradığınızda yeni bir örnek kimliği alacaksınız:
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
Yenileme jetonları
Örnek Kimliği hizmeti, uygulamanızın jetonlarını yenilemesini isteyerek düzenli olarak (örneğin, 6 ayda bir) geri çağırma başlatır. Ayrıca, aşağıdaki durumlarda geri aramalar da başlatabilir:
- Güvenlik sorunları (ör. SSL veya platform sorunları) vardır.
- Cihaz bilgileri artık geçerli değil (ör. yedekleme ve geri yükleme).
- Örnek kimliği hizmeti başka bir şekilde etkileniyor.
Bu geri çağırmaları almak için uygulamanızda örnek kimliği dinleyici hizmetini uygulayın:
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
}
}
};
Bu hizmeti projenin manifest dosyasında da yapılandırmanız gerekir:
<service android:name=".MyInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>