Android消息推送之GCM方式(二)
<声明>
转载请保留本来源地址:
http://blog.csdn.net/wzg_1987/article/details/9148023
上一节讲了GCM方式实现前的一些必要准备工作,和消息接收的实现。
这一节我们来讲一下发送消息的实现。
上一节也已经讲了,GCM方式其实并不区分严格的客户端和服务端,对于开发者来说,任何一方都可以是客户端或者服务端,只要搭建的环境满足两个端的要求。也就是说,对于用户来说,可以既是发送方也可以是接收方。这样,GCM方式也就不只是可以用来推送广告了,同样也可以拿来做即时聊天。但限于GCM的种种缺陷,用来做即时聊天并不是最好的方式。(对于消息推送的各种方案对比和选择,可以浏览我的另一篇博文http://blog.csdn.net/wzg_1987/article/details/9150945)
首先,你需要导入4个包,如果你已经在下载了GCM的服务包(下载方式见上一篇准备工作相关内容),在sdk安装目录/extrats/google/gcm文件夹下的gcm-server项目中,将lib文件夹里的json-simpleXX.jar,junit.jar,mockito-all-XX.jar和dist文件夹里的gcm-server.jar加到你的项目里。junit那个可以不用,它是gcm代码内部做单元测试使用到的。
然后,我们写一个main函数来执行发送一个消息:
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控制台页面生成的一个字符串(在上一节有讲到),用来验证消息发送方的合法性的。
deviceRegId是由客户端生成。在客户端完成注册后,调用GCMRegistrar.getRegistrationId()得到,并应该发送给服务器保存起来。
就这么简单,还可以使用send的其它重载方法,给多个注册id发送消息。
以上是服务端发送消息的简单实现。
客户端代码:http://download.csdn.net/detail/wzg_1987/5662225
服务端代码:http://download.csdn.net/detail/wzg_1987/5669419
Android消息推送之GCM方式(二)的更多相关文章
- Android消息推送之GCM方式(一)
<声明> 转载请保留本来源地址: http://blog.csdn.net/wzg_1987/article/details/9140371 首先,你需要使用一个谷歌账号登录谷歌Api控制 ...
- 使用GCM服务(Google Cloud Messaging)实现Android消息推送
最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...
- Android消息推送(二)--基于MQTT协议实现的推送功能
国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Googl ...
- Android消息推送完美解决方案全析
推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来和大家共同探讨一种Android消息推 ...
- Android消息推送完美方案[转]
转自 Android消息推送完美方案 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来 ...
- Android消息推送完美方案
转自:http://bbs.hiapk.com/thread-4652657-1-1.html 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原 ...
- android 消息推送
android 消息推送 极光推送百度云推送(语音)友盟消息推送
- Android消息推送——JPush极光推送
刚看了一篇关于Android消息推送评测总结的博客http://www.cnblogs.com/logan/p/4514635.html: 自己也对原学过的JPush极光进行一下小结,方便后续工作使用 ...
- Android消息推送的服务端
2.Android消息推送 MQTT服务器采用mosquito http://mosquitto.org/ PHP管理包采用phpmqttclient:https://github.com/toku ...
随机推荐
- Linux中Samba详细安装
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互 ...
- 推荐使用Tiny Framework web开发UI组件
TINY FRAMEWORK 基于组件化的J2EE开发框架,from:http://www.tinygroup.org/ 名字 Tiny名称的来历 取名Tiny是取其微不足道,微小之意. Tiny ...
- 【LeetCode练习题】Permutation Sequence
Permutation Sequence The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and ...
- OpenstackUbuntu
1,create user
- IOS设备设计完整指南(转载)
http://blog.sina.com.cn/s/blog_6cc9af670102vq12.html
- poj 2531 Network Saboteur(经典dfs)
题目大意:有n个点,把这些点分别放到两个集合里,在两个集合的每个点之间都会有权值,求可能形成的最大权值. 思路:1.把这两个集合标记为0和1,先默认所有点都在集合0里. 2 ...
- Eidtplus常用快捷键
文件 新建普通文本 Ctrl+N 新建普通的文本文档 新建浏览器窗口 Ctrl+Shift+B 新建浏览器窗口 新建 HTML 页 Ctrl+Shift+N 创建一个空白的 HTML 页面 打开 Ct ...
- 【类克鲁斯卡尔做法+枚举最小边】【HDU1598】【find the most comfortable road】
题意: 给你一个图,有边权,K个询问:u到v 的路径中 边权最大值-边权最小值的最小值是多少 http://acm.hdu.edu.cn/showproblem.php?pid=1598 题解( ...
- SqlHelper数据库访问类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Ubuntu 13.10 下安装 eclipse
Ubuntu软件社区用的3.8,个人想用最新版本,所有手动下载安装. 1.下载安装Jdk sudo apt-get install openjdk-7-jdk 2.查看系统JVM sudo updat ...