Implémentation Android

Les exemples suivants vous aideront à implémenter un ID d'instance dans un environnement Android. client. Notez que ces exemples utilisent le champ d'application GCM, qui n'est utile à des fins de démonstration, Google Cloud Messaging a été et ne peuvent plus être utilisées.

Configurer les services Google Play

Pour écrire votre application cliente, utilisez le SDK des services Google Play, comme indiqué dans l'article Configurer Google Play SDK des services. La bibliothèque des services Play inclut la bibliothèque d'ID d'instances.

Obtenir un ID d'instance

La ligne de code suivante renvoie un ID d'instance:

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

Générer un jeton

La génération de jetons nécessite un ID de projet généré par Google Play 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);

Gérer les jetons et les ID d'instance

L'ID d'instance vous permet de supprimer et d'actualiser des jetons.

Supprimer les jetons et les ID d'instance

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

Vous pouvez également supprimer l'ID d'instance lui-même, y compris tous les identifiants associés de jetons. La prochaine fois que vous appellerez getInstance(), vous recevrez un nouveau ID d'instance:

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

Jetons d'actualisation

Le service d'ID d'instance lance régulièrement des rappels (par exemple, tous les six mois), en demandant à votre application d'actualiser ses jetons. Il peut aussi déclencher des rappels lorsque:

  • Il y a des problèmes de sécurité. par exemple, le protocole SSL ou les problèmes de plate-forme.
  • Les informations provenant des appareils ne sont plus valides. comme la sauvegarde et la restauration.
  • Le service d'ID d'instance est autrement affecté.

Implémentez le service d'écoute d'ID d'instance dans votre application pour les recevoir Rappels:

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

Vous devez également configurer ce service dans le fichier manifeste du projet:

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