android基于百度云消息推送通知集成
2015-10-10 11:12
435 查看
从一开始的完全不懂,到现在慢慢懂了点什么!查啊查~。
从我开始入手说起吧!首先可以先去官方网站看文档并且下载Demo。配置相应的apikey。我在配置Demo时就碰到问题了,没有gen目录。我查了下,把torget改成模拟器使用的版本。就会出现gen目录了,然后发现每个类都有报错,点进去看发现是所有的android包都没导入,所以要每个类都要Import导入相应的android包。这些做完后,最后在推送平台中创建的android项目应用配置选项中的apikey的那一串字母拷贝到Demo中的清单文件中,在清单文件中的最后一行有英文说明,把说明文字替换成apikey就可以运行了。
这里只是说下怎么配置运行官方的Demo。至于在推送平台注册以及申请应用项目可以到这个网址去,也就是官网 http://push.baidu.com/doc/android/api
接下来就是怎么把百度推送集成到自己项目中应用。
我就只是新建个android项目,hello world!什么都改动过。接下来就是把SDK下的libs中的jar包跟so文件拷贝到自己项目的libs文件夹内,或者直接把libs文件夹覆盖过来也行。如果有其它的jar包的话就要另外再导入了,最后是把导入的jar包 add build path 下。在自己项目中要新建个类继承PushMessageReceiver。并且实现该类的方法,在清单文件中要记得注册receiver,并且添加相应的权限。
这是文档说明。另外还有其他的权限也要添加进去,没必要再做修改,当然在官方文档里也有。
在主Activity中的onCreate函数中添加PushManager.startWork()方法。启动推送功能。
这里的apikey可以直接添加到PushManager.startWork()方法的第二个参数中。就可以运行了。
其实就这么简单也没多难的感觉。不过我在集成时还是有出现一些问题。查查。问问。再自己理解,一般来说都能解决掉。
从我开始入手说起吧!首先可以先去官方网站看文档并且下载Demo。配置相应的apikey。我在配置Demo时就碰到问题了,没有gen目录。我查了下,把torget改成模拟器使用的版本。就会出现gen目录了,然后发现每个类都有报错,点进去看发现是所有的android包都没导入,所以要每个类都要Import导入相应的android包。这些做完后,最后在推送平台中创建的android项目应用配置选项中的apikey的那一串字母拷贝到Demo中的清单文件中,在清单文件中的最后一行有英文说明,把说明文字替换成apikey就可以运行了。
这里只是说下怎么配置运行官方的Demo。至于在推送平台注册以及申请应用项目可以到这个网址去,也就是官网 http://push.baidu.com/doc/android/api
接下来就是怎么把百度推送集成到自己项目中应用。
我就只是新建个android项目,hello world!什么都改动过。接下来就是把SDK下的libs中的jar包跟so文件拷贝到自己项目的libs文件夹内,或者直接把libs文件夹覆盖过来也行。如果有其它的jar包的话就要另外再导入了,最后是把导入的jar包 add build path 下。在自己项目中要新建个类继承PushMessageReceiver。并且实现该类的方法,在清单文件中要记得注册receiver,并且添加相应的权限。
<!-- 此处Receiver名字修改为当前包名路径 --> <receiver android:name="com.*.*.PushTestReceiver"> <intent-filter> <!-- 接收push消息 --> <action android:name="com.baidu.android.pushservice.action.MESSAGE" /> <!-- 接收bind、setTags等method的返回结果--> <action android:name="com.baidu.android.pushservice.action.RECEIVE" /> <!-- 接收通知点击事件,和通知自定义内容 --> <action android:name="com.baidu.android.pushservice.action.notification.CLICK" /> </intent-filter> </receiver>
这是文档说明。另外还有其他的权限也要添加进去,没必要再做修改,当然在官方文档里也有。
<!-- 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.ACCESS_DOWNLOAD_MANAGER"/> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <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" /> <!-- 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存活率和消息到达速度 --> <action android: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结束 -->
在主Activity中的onCreate函数中添加PushManager.startWork()方法。启动推送功能。
这里的apikey可以直接添加到PushManager.startWork()方法的第二个参数中。就可以运行了。
其实就这么简单也没多难的感觉。不过我在集成时还是有出现一些问题。查查。问问。再自己理解,一般来说都能解决掉。
相关文章推荐
- Android Service完全解析
- Android 控制EditText输入为英文或数字
- Android 拦截onClick事件
- 使用ARM DS-5与Dstream StreamLine进行Android底层性能分析的一个实例
- Android开发最佳实践<IT蓝豹>
- Android 调用已安装市场,进行软件评分的功能实现
- Android LayoutInflater的inflate方法中attachToRoot的作用
- android-percent-support-extend
- 在android中玩转wcf
- Android 中 View 炸裂特效的实现分析 <IT蓝豹>
- Android手机上获取物理唯一标识码
- Android 5.0 API新增和改进
- Android 中 View 炸裂特效的实现分析 <IT蓝豹>
- Android在drawable资源文件中绘制圆形背景
- Android开发之高仿QQ消息侧拉删除
- android NullPointerException 错误
- android-风力风向图
- 开始写点东西
- android上传图片至服务器
- Android_显示器本身被卸载应用程序