التنفيذ في نظام التشغيل Android

ستساعدك الأمثلة التالية في تنفيذ رقم تعريف المثيل في نظام Android. البرنامج. لاحظ أن هذه الأمثلة تستخدم نطاق GCM، وهو نطاق مفيد فقط لأغراض التوضيح لأن خدمة مراسلة عبر السحابة الإلكترونية من Google سيتم إزالتها من الاستخدام.

إعداد "خدمات Google Play"

لكتابة تطبيق العميل الخاص بك، استخدِم حزمة تطوير البرامج (SDK) لخدمات Google Play. كما هو موضح في قسم إعداد Google Play حزمة SDK للخدمات: تتضمن "مكتبة خدمات Play" مكتبة Instance ID.

الحصول على رقم تعريف مثيل

يعرض سطر التعليمة البرمجية التالي معرّف مثيل:

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

إعادة تحميل الرموز المميّزة

تبدأ خدمة معرّف المثيل عمليات معاودة الاتصال بشكل دوري (على سبيل المثال، كل 6 أشهر)، وطلب تحديث التطبيق للرموز المميزة الخاصة به. وقد يشير ذلك أيضًا إلى بدء عمليات معاودة الاتصال في الحالات التالية:

  • وجود مشكلات أمنية؛ على سبيل المثال، مشكلات طبقة المقابس الآمنة أو النظام الأساسي.
  • لم تعد معلومات الجهاز صالحة. على سبيل المثال، النسخ الاحتياطي والاستعادة.
  • تتأثر خدمة "رقم تعريف المثيل".

نفِّذ خدمة الاستماع إلى معرّف المثيل في تطبيقك لتلقّي هذه الإشعارات عمليات الاسترداد:

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>