Android कोड को लागू करना

यहां दिए गए उदाहरणों से, आपको किसी Android क्लाइंट में इंस्टेंस आईडी लागू करने में मदद मिलेगी. ध्यान दें कि इन उदाहरणों में GCM के दायरे का इस्तेमाल किया गया है, जो सिर्फ़ जानकारी देने के लिए मददगार है. इसकी वजह यह है कि Google क्लाउड से मैसेज सेवा को बंद कर दिया गया है.

Google Play services सेट अप करें

क्लाइंट ऐप्लिकेशन लिखने के लिए, Google Play services SDK टूल को सेट अप करना में बताए गए तरीके का इस्तेमाल करके, Google Play services का SDK टूल इस्तेमाल करें. Play Services की लाइब्रेरी में, इंस्टेंस आईडी लाइब्रेरी शामिल होती है.

इंस्टेंस आईडी पाना

कोड की यह लाइन, इंस्टेंस आईडी दिखाती है:

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();

टोकन रीफ़्रेश करें

इंस्टेंस आईडी सेवा, समय-समय पर कॉलबैक शुरू करती है (उदाहरण के लिए, हर छह महीने में). यह अनुरोध करते हुए कि आपका ऐप्लिकेशन अपने टोकन रीफ़्रेश करे. यह कॉलबैक की प्रोसेस तब भी शुरू कर सकता है, जब:

  • सुरक्षा से जुड़ी समस्याएं हो सकती हैं. उदाहरण के लिए, एसएसएल या प्लैटफ़ॉर्म से जुड़ी समस्याएं.
  • डिवाइस की जानकारी अब मान्य नहीं है; उदाहरण के लिए, बैकअप लेना और बहाल करना.
  • हालांकि, इंस्टेंस आईडी सेवा पर इसका असर पड़ता है.

ये कॉलबैक पाने के लिए, अपने ऐप्लिकेशन में इंस्टेंस आईडी लिसनर सेवा लागू करें:

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>