Android-Implementierung

In den folgenden Beispielen erfahren Sie, wie Sie die Instanz-ID in einem Android-Client implementieren. In diesen Beispielen wird der GCM-Zugriffsbereich verwendet, der nur zu Demonstrationszwecken nützlich ist, da Google Cloud Messaging eingestellt wurde.

Google Play-Dienste einrichten

Verwenden Sie zum Erstellen Ihrer Clientanwendung das Google Play Services SDK, wie unter Google Play Services SDK einrichten beschrieben. Die Play-Dienstbibliothek enthält die Instanz-ID-Bibliothek.

Instanz-ID abrufen

Die folgende Codezeile gibt eine Instanz-ID zurück:

String iid = InstanceID.getInstance(context).getId(); 

Token generieren

Zum Generieren von Tokens ist eine Projekt-ID erforderlich, die in der Google Developers Console generiert wurde.

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); 

Tokens und Instanz-IDs verwalten

Mit der Instanz-ID können Sie Tokens löschen und aktualisieren.

Tokens und Instanz-IDs löschen

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

Sie können auch die Instanz-ID selbst löschen, einschließlich aller zugehörigen Tokens. Wenn Sie getInstance() das nächste Mal aufrufen, erhalten Sie eine neue Instanz-ID:

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

Aktualisierungstokens

Der Instance ID-Dienst initiiert regelmäßig (z. B. alle sechs Monate) Callbacks, bei denen Ihre App aufgefordert wird, ihre Tokens zu aktualisieren. Außerdem kann es Callbacks in folgenden Fällen auslösen:

  • Es gibt Sicherheitsprobleme, z. B. SSL- oder Plattformprobleme.
  • Geräteinformationen sind nicht mehr gültig, z. B. Sicherung und Wiederherstellung.
  • Der Instanz-ID-Dienst ist anderweitig betroffen.

Implementieren Sie den Instanz-ID-Listenerdienst in Ihrer App, um diese Callbacks zu erhalten:

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     }   } }; 

Sie müssen diesen Dienst auch in der Manifestdatei für das Projekt konfigurieren:

<service android:name=".MyInstanceIDService" android:exported="false">   <intent-filter>         <action android:name="com.google.android.gms.iid.InstanceID"/>   </intent-filter> </service>