Android Uygulaması

Aşağıdaki örnekler, Android istemcisinde Instance-ID'yi uygulamanıza yardımcı olacaktır. Bu örneklerde GCM kapsamının kullanıldığını unutmayın. Google Cloud Messaging kullanımdan kaldırıldığı için bu kapsam yalnızca gösterim amacıyla faydalı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ığı, Birim 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şturulmuş 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);

İlişkili tüm jetonlar dahil olmak üzere örnek kimliğini de silebilirsiniz. getInstance()'e tekrar telefon ettiğinizde yeni bir örnek kimliği alırsınız:

InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();

Yenileme jetonları

Instance-ID hizmeti, uygulamanızın jetonlarını yenilemesini isteyerek düzenli olarak (örneğin, 6 ayda bir) geri çağırma işlemi başlatır. Ayrıca aşağıdaki durumlarda geri arama başlatabilir:

  • SSL veya platform sorunları gibi güvenlik sorunları var.
  • Cihaz bilgileri artık geçerli değildir (ör. yedekleme ve geri yükleme).
  • Örnek kimliği hizmeti başka bir şekilde etkilenir.

Aşağıdaki geri çağırma çağrılarını almak için uygulamanıza Instance ID 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>