2012-12-18 37 views
-3

我想在我的應用程序中實現谷歌雲消息。我有一個類GCMIntentService,我添加權限來體現這個代碼添加到主要活動:GCM在android還有什麼其他

checkNotNull(SENDER_ID, "SENDER_ID"); 
GCMRegistrar.checkDevice(this); 
GCMRegistrar.checkManifest(this); 

requestWindowFeature(Window.FEATURE_ACTION_BAR); 
setContentView(R.layout.activity_main); 
extras = getIntent().getExtras(); 

if (savedInstanceState == null) { 

    if (extras == null) { 

     GlobalConfig.setAPPLICATION_ID(APP_ID); 

    } else { 

     GlobalConfig.setAPPLICATION_ID(extras.getInt("application_id", 0)); 
    } 

} else { 

    MY_DEBUG.print("SavedInstanceState is not null"); 

} 

GlobalConfig.setBookmark(0); 

//notifications 
final String regId = GCMRegistrar.getRegistrationId(this); 
Log.i(TAG, "registration id " + regId); 

if (regId.equals("")) { 


    GCMRegistrar.register(this, SENDER_ID); 

} else { 

    Log.v(TAG, "Already registered"); 

} 

我得到的RegID,但我需要什麼都可以從谷歌得到的消息?我使用webservice連接。我需要發送此REGID服務?我的下一步應該是什麼?

回答

1

我寫了一篇博客文章,介紹GCM的工作原理以及您的服務器在此過程中的角色:http://blog.andromo.com/2012/how-does-airbop-push-messaging-work/在文章中,您可以簡單地將您的服務器替換爲AirBop服務器。

您的下一步是將註冊ID發送到將處理您的設備註冊的服務器。這將是您的服務器或第三方服務器,如AirBopUrban Airship

您應該看看GCM Demo Application教程和GCM體系結構概述以及GCM sample

從谷歌文檔:

這是事件的,當一個移動設備上運行的Android應用程序登記到接收消息發生序列:

(1)第一次Android應用需要使用消息傳遞服務,它會向GCM服務器註冊Intent。

此註冊Intent(com.google.android.c2dm.intent.REGISTER)包含發件人ID和Android應用程序ID。

注意:因爲沒有第一次運行應用程序時調用的生命週期方法,所以註冊意圖應在onCreate()上發送,但前提是應用程序尚未註冊。 (2)如果註冊成功,GCM服務器將廣播一個com.google.android.c2dm.intent.REGISTRATION意圖,該意圖爲Android應用程序提供一個註冊ID。

Android應用程序應該存儲此ID供以後使用(例如,檢查onCreate()是否已經註冊)。請注意,Google可能會定期刷新註冊ID,因此您應該設計您的Android應用程序,但必須瞭解可以多次調用com.google.android.c2dm.intent.REGISTRATION意圖。你的Android應用程序需要能夠做出相應的響應。 (3)要完成註冊,Android應用程序將註冊ID發送到應用程序服務器。應用程序服務器通常將註冊ID存儲在數據庫中。

註冊ID會一直持續到Android應用程序顯式註銷自身,或者直到Google刷新Android應用程序的註冊ID。

您正在上面的列表中的第三步。您可以通過查看ServerUtilities

中的register()方法來了解gcm-demo-client如何執行第三步
2

這是一張圖像,描述了通過GCM服務器將消息從服​​務器(您的webservice)發送到您的設備的所有步驟。

步驟1和2都已經完成(如果我理解你說的話),因爲你獲取的註冊ID。

因此,您必須按照以下步驟獲取您的通知。

希望這對你有所幫助!

相關問題