Android消息推送之GCM方式(二)
<聲明>
轉(zhuǎn)載請保留本來源地址:
http://blog.csdn.net/wzg_1987/article/details/9148023
上一節(jié)講了GCM方式實現(xiàn)前的一些必要準(zhǔn)備工作,和消息接收的實現(xiàn)。
這一節(jié)我們來講一下發(fā)送消息的實現(xiàn)。
上一節(jié)也已經(jīng)講了,GCM方式其實并不區(qū)分嚴(yán)格的客戶端和服務(wù)端,對于開發(fā)者來說,任何一方都可以是客戶端或者服務(wù)端,只要搭建的環(huán)境滿足兩個端的要求。也就是說,對于用戶來說,可以既是發(fā)送方也可以是接收方。這樣,GCM方式也就不只是可以用來推送廣告了,同樣也可以拿來做即時聊天。但限于GCM的種種缺陷,用來做即時聊天并不是最好的方式。(對于消息推送的各種方案對比和選擇,可以瀏覽我的另一篇博文http://blog.csdn.net/wzg_1987/article/details/9150945)
首先,你需要導(dǎo)入4個包,如果你已經(jīng)在下載了GCM的服務(wù)包(下載方式見上一篇準(zhǔn)備工作相關(guān)內(nèi)容),在sdk安裝目錄/extrats/google/gcm文件夾下的gcm-server項目中,將lib文件夾里的json-simpleXX.jar,junit.jar,mockito-all-XX.jar和dist文件夾里的gcm-server.jar加到你的項目里。junit那個可以不用,它是gcm代碼內(nèi)部做單元測試使用到的。
然后,我們寫一個main函數(shù)來執(zhí)行發(fā)送一個消息:
public static void main(String[] args) {
Sender sender = new Sender(apiKey);
Message message = new Message.Builder().addData("mine", "test2").build();
Result result = null;
try {
result = sender.send(message, deviceRegId, 5);
System.out.println(result.getMessageId());
} catch (IOException e) {
e.printStackTrace();
}
}
其中,apiKey是你在谷歌api控制臺頁面生成的一個字符串(在上一節(jié)有講到),用來驗證消息發(fā)送方的合法性的。
deviceRegId是由客戶端生成。在客戶端完成注冊后,調(diào)用GCMRegistrar.getRegistrationId()得到,并應(yīng)該發(fā)送給服務(wù)器保存起來。
就這么簡單,還可以使用send的其它重載方法,給多個注冊id發(fā)送消息。
以上是服務(wù)端發(fā)送消息的簡單實現(xiàn)。
客戶端代碼:http://download.csdn.net/detail/wzg_1987/5662225
服務(wù)端代碼:http://download.csdn.net/detail/wzg_1987/5669419
總結(jié)
以上是生活随笔為你收集整理的Android消息推送之GCM方式(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信内测新玩法:朋友圈加入共同回忆功能
- 下一篇: 分析师称中国黄牛都看好iPhone14: