下列範例有助於在 Android 用戶端中導入執行個體 ID。請注意,這些範例使用 GCM 範圍,僅適用於示範用途,因為 Google Cloud Messaging 已停用。
設定 Google Play 服務
如要編寫用戶端應用程式,請使用 Google Play 服務 SDK,詳情請參閱「設定 Google Play 服務 SDK」。Play 服務程式庫包含執行個體 ID 程式庫。
取得執行個體 ID
下列程式碼會傳回執行個體 ID:
String iid = InstanceID.getInstance(context).getId(); 產生權杖
如要產生權杖,必須先透過 Google Developers Console 產生專案 ID。
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); 管理權杖和執行個體 ID
執行個體 ID 可讓您刪除及更新權杖。
刪除權杖和執行個體 ID
String authorizedEntity = PROJECT_ID; String scope = "GCM"; InstanceID.getInstance(context).deleteToken(authorizedEntity,scope); 您也可以刪除執行個體 ID 本身,包括所有相關聯的權杖。下次呼叫 getInstance() 時,您會取得新的執行個體 ID:
InstanceID.getInstance(context).deleteInstanceID(); String newIID = InstanceID.getInstance(context).getId(); 更新權杖
Instance ID 服務會定期 (例如每 6 個月) 啟動回呼,要求應用程式重新整理權杖。此外,在下列情況下,系統也可能會啟動回呼:
- 有安全性問題,例如 SSL 或平台問題。
- 裝置資訊已失效,例如備份及還原。
- 執行個體 ID 服務受到其他影響。
在應用程式中導入執行個體 ID 監聽器服務,接收下列回呼:
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 } } }; 您也必須在專案的資訊清單檔案中設定這項服務:
<service android:name=".MyInstanceIDService" android:exported="false"> <intent-filter> <action android:name="com.google.android.gms.iid.InstanceID"/> </intent-filter> </service>