android客户端百度云推送的使用总结
来源:互联网 发布:神秘博士 知乎 编辑:程序博客网 时间:2024/06/05 11:06
在之前的一个项目中使用到了百度推送,以前对推送一无了解,现在把学习到的关于Android客户端百度云推送的知识分享一下
1.在配置文件里application中添加的代码:
<!-- 此处Receiver名字修改为当前包名路径 --><receiver android:name="example.com.push.PushTestReceiver"> <intent-filter> <!-- 接收push消息 --> <actionandroid:name="com.baidu.android.pushservice.action.MESSAGE"/> <!-- 接收bind、setTags等method的返回结果--> <actionandroid:name="com.baidu.android.pushservice.action.RECEIVE"/> <!-- 接收通知点击事件,和通知自定义内容 --> <actionandroid:name="com.baidu.android.pushservice.action.notification.CLICK"/> </intent-filter></receiver><!-- push service start --><!-- 用于接收系统消息以保证PushService正常运行 --><receiver android:name="com.baidu.android.pushservice.PushServiceReceiver" android:process=":bdservice_v1"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <action android:name="com.baidu.android.pushservice.action.notification.SHOW"/> <action android:name="com.baidu.android.pushservice.action.media.CLICK"/> <!-- 以下四项为可选的action声明,可大大提高service存活率和消息到达速度 --> <actionandroid:name="android.intent.action.MEDIA_MOUNTED"/> <action android:name="android.intent.action.USER_PRESENT"/> <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> </intent-filter></receiver><!-- Push服务接收客户端发送的各种请求--><receiver android:name="com.baidu.android.pushservice.RegistrationReceiver" android:process=":bdservice_v1"> <intent-filter> <action android:name="com.baidu.android.pushservice.action.METHOD"/> <action android:name="com.baidu.android.pushservice.action.BIND_SYNC"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package"/> </intent-filter></receiver><service android:name="com.baidu.android.pushservice.PushService" android:exported="true" android:process=":bdservice_v1"> <intent-filter > <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE"/> </intent-filter></service><!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 --><service android:name="com.baidu.android.pushservice.CommandService" android:exported="true" /><!-- push结束 -->< !-- example.com.push为应用包名--><provider android:name="com.baidu.android.pushservice.PushInfoProvider" android:authorities="example.com.push.bdpush" android:exported="true" android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.example.com.push"/>
2.在配置文件里添加权限
<!-- Push service 运行需要的权限 --><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android:name="android.permission.WRITE_SETTINGS"/><uses-permission android:name="android.permission.VIBRATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.DISABLE_KEYGUARD"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><!-- 富媒体需要声明的权限 --><uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/><uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/><uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
3.在工作创建PushTestReceiver类
/** * Created by qinghua on 2016/8/9. *//** * Push消息处理receiver。请编写您需要的回调函数, 一般来说: onBind是必须的,用来处理startWork返回值; * onMessage用来接收透传消息; onSetTags、onDelTags、onListTags是tag相关操作的回调; * onNotificationClicked在通知被点击时回调; onUnbind是stopWork接口的返回值回调 * * 返回值中的errorCode,解释如下: 0 绑定成功 10001 当前网络不可用,请检查网络 10002 服务不可用,连接server失败 10003 服务不可用,503错误 10101 应用集成方式错误,请检查各项声明和权限 20001 未知错误 30600 服务内部错误 30601 非法函数请求,请检查您的请求内容 30602 请求参数错误,请检查您的参数 30603 非法构造请求,服务端验证失败 30605 请求的数据在服务端不存在 30608 绑定关系不存在或未找到 30609 一个百度账户绑定设备超出个数限制(多台设备登录同一个百度账户) * * 当您遇到以上返回错误时,如果解释不了您的问题,请用同一请求的返回值requestId和errorCode联系我们追查问题。 * */public class PushTestReceiverextendsPushMessageReceiver { @Override public voidonBind(Context context,inti, String s, String s1, String s2, String s3) { String responseString = "onBind errorCode="+ i +" appid=" + s + " userId=" + s1 + " channelId="+ s2 + " requestId=" + s3; Log.e("xyz", responseString); if(i==0) { Log.e("xyz","绑定成功"); } } @Override public voidonUnbind(Context context,inti, String s) { String responseString = "onUnbind errorCode="+ i + " requestId = " + s; Log.d(TAG, responseString); if (i == 0) { // 解绑定成功 Log.d("xyz","解绑成功"); } } @Override public voidonSetTags(Context context,inti, List<String> list, List<String> list1, String s) { String responseString = "onSetTags errorCode="+ i + " sucessTags=" + list + " failTags=" + list1 + " requestId=" + s; Log.d("xyz", responseString); } @Override public voidonDelTags(Context context,inti, List<String> list, List<String> list1, String s) { String responseString = "onSetTags errorCode="+ i + " sucessTags=" + list + " failTags=" + list1 + " requestId=" + s; Log.d("xyz", responseString); } @Override public voidonListTags(Context context,inti, List<String> list, String s) { String responseString = "onListTags errorCode="+ i +" tags=" + list; Log.d(TAG, responseString); } @Override public voidonMessage(Context context, String s, String s1) { String messageString = "透传消息 message=\""+ s + "\" customContentString="+ s1; Log.d("xyz", messageString); } @Override public voidonNotificationClicked(Context context, String s, String s1, String s2) { String notifyString = "onNotificationClicked title=\""+ s + "\" description=\""+ s1 + "\" customContent=" + s2; Log.d("xyz", notifyString); } @Override public voidonNotificationArrived(Context context, String s, String s1, String s2) { String notifyString = "onNotificationArrived title=\""+ s + "\" description=\""+ s1 + "\" customContent=" + s2; Log.d("xyz",notifyString); }}
4.在OnCreate函数中写入:
PushManager.startWork(MainActivity.this, PushConstants.LOGIN_TYPE_API_KEY,”api_key”);
5.时刻关注sdk的更新,不然无法推送
这个是别人的截图:
1.
2.
3.
*常用的类和API
· Class 描述
· API
作者:李媛媛:原文地址
阅读全文
0 0
- android客户端百度云推送的使用总结
- android客户端百度云推送的使用总结
- android客户端百度云推送的使用总结
- Android 百度推送使用总结
- Android 百度推送使用总结
- Android 推送消息的实现,使用百度云推送
- android开发(25) - 推送的实现,使用百度云推送
- android开发(25) - 推送的实现,使用百度云推送
- Android客户端之百度云推送
- android 使用百度云推送
- 推送的实现,使用百度云推送
- Android推送 利用REST API实现从客户端推送(百度云推送)
- Android推送 百度云推送
- Android推送 百度云推送
- Android百度云推送
- android 百度云推送
- Android 百度云推送
- Android百度云推送
- ajax跨域,使用json,crossDomain,请求返回状态200,但是走的error的原因以及解决方法
- Mysql安装
- Python 装饰器 完善版
- iOS Audio unit(音频单元)详解
- Python学习04-列表(List)/元祖/字典总结
- android客户端百度云推送的使用总结
- 关于Java虚拟机内存原型介绍
- java数据类型与sql数据类型的对照,如数据库中的char类型对应java中的数据类型为?
- MySQL查询中 find_in_set 在使用中可能遇到的问题
- Qt GUI程序中主线程与非主线程之间的通信
- jsonview浏览器插件 查看格式化json数据
- redis位图法统计活跃用户+统计3天的连续登录用户案例
- C++学习之路C++Primer学习笔记(二)如何选择类型
- JRebel for Android 破解