Android Uygulaması

Aşağıdaki örnekler, Örnek Kimliğini bir Android istemcisinde uygulamanıza yardımcı olacaktır. Bu örneklerin, Google Cloud Messaging kullanımdan kaldırıldığı için yalnızca gösterim amaçlı olan GCM kapsamını kullandığını unutmayın.

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ştur

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önetin

Örnek kimliği, jetonları silip yenilemenize olanak tanır.

Jetonları ve örnek kimliklerini sil

String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);

İlişkili tüm jetonlar dahil olmak üzere örnek kimliğinin kendisini de silebilirsiniz. getInstance() numaralı telefonu tekrar aradığınızda yeni bir Örnek Kimliği alırsınız:

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

Jetonları yenile

Örnek Kimliği hizmeti düzenli aralıklarla (örneğin, 6 ayda bir) geri çağırma başlatır ve uygulamanızın jetonlarını yenilemesini ister. Aşağıdaki durumlarda da geri çağırma başlatabilir:

  • SSL veya platform sorunları gibi güvenlik sorunları vardır.
  • Yedekleme ve geri yükleme gibi cihaz bilgileri artık geçerli değil.
  • Aksi takdirde Örnek Kimliği hizmeti etkilenir.

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>