谷歌云消息GCM(Google Cloud Messaging)的Android是一个免费的服务,帮助开发者发送的数据从服务器到他们的Android设备上的Android应用程序。这可能是一个轻量级消息,告诉Android应用存在于从服务器获取的新数据(例如,一个“新邮件”的通知,通知手机App与Server端有新数据,需要App更新数据),或者它的数据载荷为4kb的消息(所以,对于即时消息或邮件等应用可以直接使用这个Push的消息)。
具体的结构如图:
实现GCM的消息推送,需要3部分组成。Google的GCMConnection Servers,第三方App Server(通常为和自己手机App通信的Server),ClientApp。
1. 开启GCM功能。Android App需要向GCM Connection Servers去注册自己的手机,这样GCM ConnectionServers才会知道将来将消息推送到那个设备上。
2. 发送消息。发送消息一般是有与App直接通信的AppServer上完成的。当AppServer想向那个设备或者是进行广播某些消息的时候,会向GCMConnection Servers发送消息。
然后GCMConnection Servers会先存储这个消息,当指定的手机处于在线状态时,将这个消息发送给手机App。
3. 接收消息。AndroidSystem会接收到来自GCMConnection Servers发送来的消息。然后向所有注册了com.google.android.c2dm.intent.RECEIVE的App发送这个消息。
App 在自己的Receive中接收并处理这条消息。
具体的消息流程:
为完成整个流程,需要首先注册一个google project
并获得需要有几个资源:1.Project Number 2.Registration Id,google API key。
下面介绍怎样注册google project 和获得这些资源。
1. 在google 控制台中创建项目 https://console.developers.google.com/project
2.输入项目名称。
3. 打开Google Cloud Messaging for Android 功能
4.如果成功,可以看到下图。
5. 在APIs & auth 中创建 public API access Key。必须选择Server Key。
6. 这时会产生一个API key,这个API Key就是上面流程图中的API KEY
7. 在项目的Overview中查看 Project Number。
在设备注册成功后会拿到 Registration Id. 下一篇会提到。
参考网站:http://developer.android.com/google/gcm/gcm.html