2012-12-11 19 views
0

我想(因爲它已經被改變/更新,以通知連接到數據源設備)安卓:一些問題來了解GCM以及

我讀了很多教程關於獲取和推送通知它,並試圖將其應用,以幫助我在我的情況,但實際上我遇到了一些問題瞭解GCM它是如何工作

我已經登記在https://code.google.com/apis/console並採取發件人IDAPIKEY

現在我一些問題:

  1. 你我們每次啓動該應用程序或僅在第一次時間將設備註冊到服務?

  2. 我們是否使用GCM(僅通知設備發生了什麼事)或(通知並獲取關於什麼是變化的信息)?

  3. 爲什麼這個操作需要(客戶端和服務器) 我的意思是(客戶端)它是確定因爲他會收到推送通知,,但(服務器意味着什麼這裏):(,,因爲我覺得在此服務器將是谷歌它的自我通知設備

  4. 在這種情況下,當我們使用一個APIKEY

的理念是:

我已經在我的網站的SQL Server數據庫,並有小的Android應用程序有兩個用戶 需要(和它打交道)時,任何用戶添加一條記錄到數據庫通知其他用戶

在此先感謝, ,

問候:)


回答

1

1)你有GCM註冊,只有當你需要。例如。當您致電

GCMRegistrar.getRegistrationId(appContext); 

而且它返回一個空白字符串。通常這會在您第一次啓動您的應用程序時發生。

2)它取決於你想要的數據是什麼,以及它是否適合4K有效載荷限制。請查看Send-to-Sync vs. Messages with Payload Google幫助主題。

3)您的服務器是將消息發送到GCM服務器的服務器。 GCM服務器然後將消息發送到應用程序。看一下我爲我幫助創建的服務編寫的博客文章:http://blog.andromo.com/2012/how-does-airbop-push-messaging-work/它應該有助於解釋這是如何工作的。在解釋中,您可以用您自己的服務器替換我們的服務器。

4)您發送您的API密鑰爲您的消息到GCM服務器的一部分,詳見這裏:

Content-Type:application/json 
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA 

{ 
    "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."], 
    "data" : { 
    ... 
    }, 
} 

授權:鍵= YOUR_API_KEY

+0

在下面的請求http://developer.android.com/google/gcm/gcm.html#request

所以非常感謝(+1), ** 1 - **我明白了,服務器會收到來自設備的信息,並將其發送回GCM,並且GCM會將通知推送給其他設備?這可以嗎 ? ** 2 - **我認爲取決於您在服務器上面寫的內容可能在同一個應用程序中,或者它可能在網站(頁面)上從設備接收併發送給GCM? – Loai

+0

看看我鏈接到的博客文章。簡而言之,您的應用程序在註冊時從GCM獲取ID,然後將其發送到您的服務器。向GCM發送消息時,服務器將包含該ID。 GCM使用該ID將消息引導至您的應用程序。 – selsine

+0

@sesline我已閱讀帖子,但仍需要了解服務器功能... 我可以把服務器內部的客戶端設備自動當我從客戶端發送的東西直接到另一個設備.. – Loai