[英]Registering an app with Google Cloud Messaging
我正在嘗試了解如何向Google Cloud消息傳遞注冊應用程序。 我正在查看Google Play應用中的代碼,如下所示:
paramVarArgs = a(paramVarArgs);
Log.v("GCMRegistrar", "Registering app " + paramContext.getPackageName() + " of senders " + paramVarArgs);
Intent localIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
localIntent.setPackage("com.google.android.gsf");
localIntent.putExtra("app", PendingIntent.getBroadcast(paramContext, 0, new Intent(), 0));
localIntent.putExtra("sender", paramVarArgs);
paramContext.startService(localIntent);
我不太了解正在注冊的應用最終如何收到意圖,因為這似乎是將意圖發送給包名稱為com.google.android.gsf(Google服務框架)的應用。 我查看了在gsf應用程序中通過REGISTER操作調用的服務,但它似乎也沒有發送廣播。 我對這一切如何工作感到很困惑。 有人可以解釋一下嗎? 在此先多謝!!
如果您將檢查“ 注冊客戶端應用程序”文檔:
- 當您的應用在線時,實例ID服務會發出一個
InstanceID
。InstanceID
由具有存儲在本地設備上的私鑰和在Instance ID服務中注冊的公鑰的公/私鑰對支持。- 您的應用可以在需要時使用
getID()
方法請求一個新的InstanceID
。 如果您有支持應用程序的應用程序,則可以將其存儲在服務器上。- 您的應用程序可以根據需要使用
getToken()
方法從實例ID服務請求令牌,並且像InstanceID
一樣,您的應用程序還可以將令牌存儲在您自己的服務器上。 發行給您應用的所有令牌均屬於該應用的InstanceID
。- 令牌是唯一且安全的,但是如果出現安全問題或在設備還原期間用戶卸載並重新安裝您的應用程序,則您的應用程序或實例ID服務可能需要刷新令牌。 您的應用必須實現一個偵聽器,以響應來自實例ID服務的令牌刷新請求。
這是用於生成ID的代碼示例:
String iid = InstanceID.getInstance(context).getId();
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.