مثالهای زیر به شما کمک میکنند تا Instance ID را در یک کلاینت اندروید پیادهسازی کنید. توجه داشته باشید که این نمونهها از دامنه GCM استفاده میکنند که فقط برای اهداف نمایشی مفید است زیرا Google Cloud Messaging از استفاده کنار گذاشته شده است.
سرویس های Google Play را راه اندازی کنید
برای نوشتن برنامه مشتری خود، از SDK خدمات Google Play استفاده کنید، همانطور که در تنظیم SDK خدمات Google Play توضیح داده شده است. کتابخانه خدمات Play شامل کتابخانه Instance ID است.
یک شناسه نمونه دریافت کنید
خط کد زیر یک ID نمونه برمی گرداند:
String iid = InstanceID.getInstance(context).getId();
یک توکن تولید کنید
برای تولید توکن ها به شناسه پروژه نیاز است که توسط کنسول توسعه دهندگان Google ایجاد شده است.
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);
توکن ها و شناسه های نمونه را مدیریت کنید
Instance ID به شما امکان میدهد توکنها را حذف و بهروزرسانی کنید.
توکن ها و شناسه های نمونه را حذف کنید
String authorizedEntity = PROJECT_ID;
String scope = "GCM";
InstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
همچنین میتوانید ID Instance را از جمله تمام نشانههای مرتبط حذف کنید. دفعه بعد که getInstance()
تماس گرفتید، یک Instance ID جدید دریافت خواهید کرد:
InstanceID.getInstance(context).deleteInstanceID();
String newIID = InstanceID.getInstance(context).getId();
بازخوانی نشانه ها
سرویس Instance ID به صورت دورهای (مثلاً هر 6 ماه یکبار) تماسهای برگشتی را آغاز میکند و از برنامه شما درخواست میکند که توکنهای خود را تازهسازی کند. همچنین ممکن است زمانی که:
- مسائل امنیتی وجود دارد؛ به عنوان مثال، مشکلات SSL یا پلت فرم.
- اطلاعات دستگاه دیگر معتبر نیست. به عنوان مثال، پشتیبان گیری و بازیابی.
- سرویس Instance ID در غیر این صورت تحت تأثیر قرار می گیرد.
برای دریافت این تماسها، سرویس شنونده Instance 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
}
}
};
همچنین باید این سرویس را در فایل Manifest برای پروژه پیکربندی کنید:
<service android:name=".MyInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>