यहां दिए गए उदाहरणों की मदद से, Android क्लाइंट में इंस्टेंस आईडी लागू किया जा सकता है. ध्यान दें कि इन उदाहरणों में GCM स्कोप का इस्तेमाल किया गया है. यह सिर्फ़ डेमो के मकसद से काम का है, क्योंकि Google Cloud Messaging को बंद कर दिया गया है.
Google Play services सेट अप करना
अपना क्लाइंट ऐप्लिकेशन लिखने के लिए, Google Play services SDK का इस्तेमाल करें, जैसा कि Google Play services SDK सेट अप करना में बताया गया है. Play सेवाएं लाइब्रेरी में, इंस्टेंस आईडी लाइब्रेरी शामिल होती है.
कोई इंस्टेंस आईडी पाना
कोड की यह लाइन, इंस्टेंस आईडी दिखाती है:
String iid = InstanceID.getInstance(context).getId();
कोई टोकन जनरेट करना
टोकन जनरेट करने के लिए, 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);
टोकन और इंस्टेंस आईडी मैनेज करना
इंस्टेंस आईडी की मदद से, टोकन मिटाए और रीफ़्रेश किए जा सकते हैं.
टोकन और इंस्टेंस आईडी मिटाना
String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
इंस्टेंस आईडी को भी मिटाया जा सकता है. इसमें उससे जुड़े सभी टोकन भी शामिल हैं. अगली बार getInstance() को कॉल करने पर, आपको एक नया इंस्टेंस आईडी मिलेगा:
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
टोकन रीफ़्रेश करना
इंस्टेंस आईडी सेवा, समय-समय पर कॉलबैक शुरू करती है. उदाहरण के लिए, हर छह महीने में. इसमें आपके ऐप्लिकेशन से उसके टोकन रीफ़्रेश करने का अनुरोध किया जाता है. यह इन स्थितियों में भी कॉलबैक शुरू कर सकती है:
- सुरक्षा से जुड़ी समस्याएं होने पर. जैसे, SSL या प्लैटफ़ॉर्म से जुड़ी समस्याएं.
- डिवाइस की जानकारी अब मान्य नहीं है. जैसे, बैकअप और रीस्टोर.
- इंस्टेंस आईडी सेवा पर किसी और वजह से असर पड़ा है.
ये कॉलबैक पाने के लिए, अपने ऐप्लिकेशन में इंस्टेंस आईडी लिसनर सेवा लागू करें:
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>