android基于百度云消息推送通知集成
从一开始的完全不懂,到现在慢慢懂了点什么!查啊查~。
从我开始入手说起吧!首先可以先去官方网站看文档并且下载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读取工程内嵌资源文件的两种方法
- Android 实际项目架构提炼开篇一
- Android 共享内存实现跨进程大文件传输(设计思路和Demo实现绕过B
- Android旅游APP类项目源代码
- Git新手入门与上传项目到远程仓库GitHub
- [置顶] ADT版本号超过17后,所遇到的问题,如导入项目没有Android De