Poniższe przykłady pomogą Ci wdrożyć identyfikator instancji w Androidzie klienta. Pamiętaj, że w tych przykładach używany jest zakres GCM, który jest przydatny tylko dla celów demonstracyjnych, ponieważ Google Cloud Messaging to wycofane z użycia.
Skonfiguruj Usługi Google Play
Aby napisać aplikację kliencką, użyj pakietu SDK Usług Google Play. zgodnie z opisem w artykule Konfigurowanie Google Play. Pakiet SDK usług. Biblioteka usług Google Play zawiera bibliotekę identyfikatorów instancji.
Pobieranie identyfikatora instancji
Ten wiersz kodu zwraca identyfikator instancji:
String iid = InstanceID.getInstance(context).getId();
Generowanie tokena
Do generowania tokenów wymagany jest identyfikator projektu wygenerowany przez 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);
Zarządzanie tokenami i identyfikatorami instancji
Identyfikator instancji pozwala usuwać i odświeżać tokeny.
Usuń tokeny i identyfikatory instancji
String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
Możesz też usunąć sam identyfikator instancji, w tym wszystkie powiązane
tokeny. Następnym razem, gdy zadzwonisz do firmy getInstance()
, otrzymasz nowy
Identyfikator instancji:
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
Odśwież tokeny
Usługa identyfikatora instancji okresowo inicjuje wywołania zwrotne (na przykład co 6 miesięcy) z prośbą o odświeżenie tokenów aplikacji. Może też inicjuj wywołania zwrotne, gdy:
- Wystąpiły problemy z bezpieczeństwem. np. SSL lub platformy.
- Informacje o urządzeniu nie są już prawidłowe. na przykład tworzenie i przywracanie kopii zapasowej.
- Ma to inny wpływ na usługę identyfikatora instancji.
Zaimplementuj w swojej aplikacji usługę detektora identyfikatorów instancji, aby otrzymywać te wywołania zwrotne:
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
}
}
};
Musisz też skonfigurować tę usługę w pliku manifestu projektu:
<service android:name=".MyInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>