Les exemples suivants vous aideront à implémenter l'ID d'instance dans un client Android. Notez que ces exemples utilisent le champ d'application GCM, qui n'est utile qu'à des fins de démonstration, car Google Cloud Messaging n'est plus utilisé.
Configurer les services Google Play
Pour écrire votre application cliente, utilisez le SDK des services Google Play, comme décrit dans Configurer le SDK des services Google Play. La bibliothèque des services Play inclut la bibliothèque Instance ID.
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
Pour générer des jetons, vous avez besoin d'un ID de projet généré par la Google Developers 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 les 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 jetons associés. La prochaine fois que vous appellerez getInstance()
, vous obtiendrez un nouvel ID d'instance :
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
Jetons d'actualisation
Le service Instance ID lance des rappels périodiquement (par exemple, tous les six mois) pour demander à votre application d'actualiser ses jetons. Il peut également lancer des rappels dans les cas suivants :
- Il existe des problèmes de sécurité (par exemple, des problèmes liés à SSL ou à la plate-forme).
- Les informations sur l'appareil ne sont plus valides (par exemple, la sauvegarde et la restauration).
- Le service Instance ID est affecté.
Implémentez le service d'écouteur d'ID d'instance dans votre application pour recevoir ces 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>