[Android] GCM(google cloud message) with .Net Server

  • 18937
  • 0
  • 2013-12-27

摘要:[Android] GCM(google cloud message) with .Net Server

因為Google改變的關係,所以原本的程式已經不能run了,請參考新的demo程式

GCM Demo131211.rar

google-play-services_lib.rar

 

 

大略講一下程式重點的部分:

1)取得 Registration Id
Main.java

if (gcm == null) {
        gcm = GoogleCloudMessaging.getInstance(context);
 }
 
 regid = gcm.register(SENDER_ID);

 

2)註冊receiver與service
AndroidManifest.xml

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
        
<receiver
       android:name=".GcmBroadcastReceiver"
       android:permission="com.google.android.c2dm.permission.SEND" >
       <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.example.gcmdemo_v2" />
       </intent-filter>
</receiver>
        
<service android:name=".GcmIntentService" />

 

3)告訴receiver要用哪個IntentService處理
GcmBroadcastReceiver.java

// Explicitly specify that GcmIntentService will handle the intent.
ComponentName comp = new ComponentName(context.getPackageName(), GcmIntentService.class.getName());
       
 

4)處理 GoogleCloudMessaging
GcmIntentService.java

Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
 
// The getMessageType() intent parameter must be the intent you received in your BroadcastReceiver.
String messageType = gcm.getMessageType(intent);

if (!extras.isEmpty()) {
      if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) {
             //收到GoogleCloudMessaging,看要做什麼處理
            // Post notification of received message.
             sendNotification("Received: " + extras.toString());

      }
}

 

================================================
以上本次修正過的程式重點,請多多指教~

 

 

GCM:可以將資料從自己的server發送訊息至使用者行動裝置上。


主要的三個元素:


1.Mobile Device :
手機、平板之類的行動裝置,用來安裝我們開發的app。

2.3rd-party Application Server :
我們自己的server,用來記住Mobile Device接收到GCM的註冊ID(regID),
並透過GCM
 server向Mobile Device發送訊息。


3.GCM Servers :
Google的GCM server。


GCM運作流程圖:



實作,依照GCM: Getting Started的教學來做:

Creating a Google API project : 這邊我建立了一個GCM_Demo的project
建好之後,網址列上那串數字就是sender ID,必須要記起來,以下圖為例
sender ID為883174877493



Enabling the GCM Service : 點選左邊的services並打開Google Cloud Message功能


Obtaining an API Key : 點選左邊的 Api Access -> create new server key -> create

得到api key


 










參考資料
http://developer.android.com/google/gcm/index.html
http://blog.loveplusplus.com/blog/2012/11/27/android-push-gcm/