黑马程序员技术交流社区

标题: Android推送 百度云推送 入门篇 [打印本页]

作者: linxy06    时间: 2015-11-26 00:15
标题: Android推送 百度云推送 入门篇
现在app基本都有推送的功能,于是看了下百度云的推送,官方文档和Demo都很到位,记录下使用过程,目标是利用百度云推送最为服务器写个及时通讯的例子~当然了,这是第一篇入门~

1、第一步就是在百度开发者服务管理中创建项目,然后拿到API key , Secret Key ;这个过程就不多说了,上官网直接申请就行,不复杂。
2、下载云推送的客户端SDK,SDK的压缩文件中包含一个例子代码,一个用户手册,和所需的libs和资源等(其实直接看用户手册和Demo基本就没问题了)。
3、准备工作结束,接下来,我们就直接开始新建项目测试

a、新建一个项目,然后把SDK中的libs中的jar和so文件夹拷贝到新建的项目中去
b、将manifest中的application的name设置为:com.baidu.frontia.FrontiaApplication
如果你的项目需要自定义Application,请参考用户手册中的相关配置。
c、添加权限
<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" />  
d、添加两个receiver和一个Service(注释标明了用处)
<!-- 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" />  
           </intent-filter>  
       </receiver>  
       <!-- Push服务接收客户端发送的各种请求 -->  
       <!-- 注意:RegistrationReceiver 在2.1.1及之前版本有拼写失误,为RegistratonReceiver ,用新版本SDK时请更改为如下代码 -->  
       <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>  
       <!-- Push 服务 -->  
       <!-- 注意:在4.0 (包含)之后的版本需加上如下所示的intent-filter action -->  
       <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>  
       <!-- push service end -->  
e、我们需要自己实现一个Receiver,来接收Push消息、接口调用回调以及通知点击事件。
<receiver android:name="com.example.zhy_baiduyun_tuisong01.receiver.MyPushMessageReceiver" >  
           <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>  





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2