App之百度云推送
2016-02-14 17:51
429 查看
集成SDK
下载最新的Android SDK压缩包并解压,在新建工程或已有工程中增加百度云推送功能。
我下载的是
package com.baidu.yun.push.sample; import com.baidu.yun.core.log.YunLogEvent; import com.baidu.yun.core.log.YunLogHandler; import com.baidu.yun.push.auth.PushKeyPair; import com.baidu.yun.push.client.BaiduPushClient; import com.baidu.yun.push.constants.BaiduPushConstants; import com.baidu.yun.push.exception.PushClientException; import com.baidu.yun.push.exception.PushServerException; import com.baidu.yun.push.model.PushMsgToAllRequest; import com.baidu.yun.push.model.PushMsgToAllResponse; public class AndroidPushMsgToAll { public static void main(String[] args) throws PushClientException,PushServerException { /* 1. 创建PushKeyPair * 用于app的合法身份认证 * apikey和secretKey可在应用详情中获取 */ String apiKey = "MmPl80nW1RbeCAOT4rcNBGTu"; String secretKey = "QTWsFfuqFlL0RHfvP6tXoV4AndhF49W2"; PushKeyPair pair = new PushKeyPair(apiKey, secretKey); // 2. 创建BaiduPushClient,访问SDK接口 BaiduPushClient pushClient = new BaiduPushClient(pair, BaiduPushConstants.CHANNEL_REST_URL); // 3. 注册YunLogHandler,获取本次请求的交互信息 pushClient.setChannelLogHandler(new YunLogHandler() { @Override public void onHandle(YunLogEvent event) { System.out.println(event.getMessage()); } }); try { // 4. 设置请求参数,创建请求实例 PushMsgToAllRequest request = new PushMsgToAllRequest() .addMsgExpires(new Integer(3600))//设置消息的有效时间,单位秒,默认3600*5. .addMessageType(1) //设置消息类型,0表示透传消息,1表示通知,默认为0. .addMessage("{\"title\":\"TEST\",\"description\":\"Hello Baidu push!!---!\"}") //添加透传消息 .addSendTime(System.currentTimeMillis() / 1000 + 120) // 设置定时推送时间,必需超过当前时间一分钟,单位秒.实例2分钟后推送 .addDeviceType(3); //设置设备类型,deviceType => 1 for web, 2 for pc, 3 for android, 4 for ios, 5 for wp. // 5. 执行Http请求 PushMsgToAllResponse response = pushClient.pushMsgToAll(request); // 6. Http请求返回值解析 System.out.println("msgId: " + response.getMsgId() + ",sendTime: " + response.getSendTime() + ",timerId: " + response.getTimerId()); } catch (PushClientException e) { //ERROROPTTYPE 用于设置异常的处理方式 -- 抛出异常和捕获异常, //'true' 表示抛出, 'false' 表示捕获。 if (BaiduPushConstants.ERROROPTTYPE) { throw e; } else { e.printStackTrace(); } } catch (PushServerException e) { if (BaiduPushConstants.ERROROPTTYPE) { throw e; } else { System.out.println(String.format( "requestId: %d, errorCode: %d, errorMessage: %s", e.getRequestId(), e.getErrorCode(), e.getErrorMsg())); } } } }
View Code
其它语言可以通过包装RestAPI使用云推送服务,详情见http://push.baidu.com/doc/restapi/restapi
手机接收通知消息
当设备接收到通知消息后,查看手机的通知栏,可以看到通知栏内的新通知展示。如图:![](http://images2015.cnblogs.com/blog/753478/201602/753478-20160215094549220-840160874.png)
通知到达时,当通知被用户点击时,会回调onNotificationClicked函数。
注意:百度云推送的频率有限制,限制策略为:单播默认:5000qps,组播默认:100qps,1000qpm,5000qph,广播默认:每4秒只能推送2次
小米手机可能会出现失败的情况,建议重启一下手机。
相关文章推荐
- Happy Valentine's Day
- springmvc学习笔记--mybatis--使用插件自动生成实体和mapper
- Android检测手机系统版本号、手机品牌工具类
- iOS IM开发准备工作(一)XML解析
- iOS开发笔记-圆滑的曲线
- iOS字符串处理详解
- iOS 在类别里添加成员变量的方法:objc_setAssociatedObject
- Android系统流程
- 基于zepto.js的移动端H5单页面跟随手指滑动切换控件pageSlider
- android pull 解析xml文件
- Android自己定义控件(状态提示图表)
- android笔记(1)
- android中checkbox文字和复选框的间距设置问题
- 优化 Android 线程和后台任务开发
- unity, ugui button 禁止重复点击
- iOS支付宝集成时遇到的问题整理(1)
- Android Studio项目结构和Gradle应用
- Android 5.0 Camera (3):open camera
- android View事件机制分析(一)
- 浅谈Android系统的基本体系结构与内存管理优化