您的位置:首页 > 移动开发 > Android开发

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,并且添加相应的权限。

<!-- 此处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()方法的第二个参数中。就可以运行了。

其实就这么简单也没多难的感觉。不过我在集成时还是有出现一些问题。查查。问问。再自己理解,一般来说都能解决掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: