ستساعدك الأمثلة التالية في تنفيذ "رقم تعريف المثيل" في جهاز عميل Android. يُرجى العِلم أنّ هذه الأمثلة تستخدِم نطاق GCM، الذي لا يكون مفيدًا إلا لأغراض العرض التوضيحي لأنّه تم إيقاف استخدام Google Cloud Messaging من الاستخدام.
إعداد "خدمات Google Play"
لكتابة تطبيق العميل، استخدِم حزمة تطوير البرامج (SDK) الخاصة "بخدمات Google Play"، كما هو موضّح في مقالة إعداد حزمة تطوير البرامج (SDK) الخاصة "بخدمات Google Play". تتضمّن "مكتبة خدمات 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();
إعادة تحميل الرموز المميّزة
تبدأ خدمة "رقم تعريف المثيل" عمليات معاودة الاتصال بشكل دوري (مثلاً، كل 6 أشهر)، وتطلب من تطبيقك إعادة تحميل الرموز المميّزة. قد تبدأ أيضًا عمليات معاودة الاتصال في الحالات التالية:
- في حال حدوث مشاكل أمان، مثل مشاكل في طبقة المقابس الآمنة (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>