最近在做一款叫做 盯盯工作的软件,需要用到推送服务,下来把安卓客户端加入百度推送的方法给大家分享一下:
百度推送有推送通知 推送消息 推送富媒体三种类型,我们用到的是推送消息类型。
下面说一下加入百度推送的方法:
1,你需要有一个百度账号,进入网站:http://developer.baidu.com/services 点击管理控制台----开发者服务管理,新创建一个工程, 系统会生成API Key和Secret Key,记下这两个key.
2, 在这里 http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/sdk/clientsdk
下载Android 平台的客户端SDK。
3,将SDK里面的lib库文件复制到我们的安卓工程lib 文件夹里面去。
4,在Application oncreat 的时候FrontiaApplication.initFrontiaApplication(this);
5,在AndroidManifest.xml中加入百度云推送功能所需权限:
<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permissionandroid:name="android.permission.WRITE_SETTINGS" />
<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD" />
加入一些声明:
<!--baidupush -->
<meta-data
android:name="api_key"
android:value="gXtNRzekLd3o6qUsGkaxxxx"/>
(填写前面提到的 API Key)
<!-- push应用定义消息receiver声明-->
<receiverandroid:name="com.mlp.push.example.MyPushMessageReceiver">
<intent-filter>
<!-- 接收push消息-->
<actionandroid:name="com.baidu.android.pushservice.action.MESSAGE" />
<!-- 接收bind,unbind,fetch,delete等反馈消息-->
<actionandroid:name="com.baidu.android.pushservice.action.RECEIVE" />
<actionandroid:name="com.baidu.android.pushservice.action.notification.CLICK"/>
</intent-filter>
</receiver>
<!-- push必须的receviver和service声明-->
<receiver android:name="com.baidu.android.pushservice.PushServiceReceiver"
android:process=":bdservice_v1">
<intent-filter>
<actionandroid:name="android.intent.action.BOOT_COMPLETED" />
<actionandroid:name="android.net.conn.CONNECTIVITY_CHANGE" />
<actionandroid:name="com.baidu.android.pushservice.action.notification.SHOW"/>
<actionandroid:name="com.baidu.android.pushservice.action.media.CLICK" />
</intent-filter>
</receiver>
<receiverandroid:name="com.baidu.android.pushservice.RegistrationReceiver"
android:process=":bdservice_v1">
<intent-filter>
<actionandroid:name="com.baidu.android.pushservice.action.METHOD" />
<actionandroid:name="com.baidu.android.pushservice.action.BIND_SYNC" />
</intent-filter>
<intent-filter>
<actionandroid: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>
<actionandroid:name="com.baidu.android.pushservice.action.PUSH_SERVICE"/>
</intent-filter>
</service>
<!-- push结束-->
6, 在主activity 中 启动推送
if (!Utils.hasBind(getApplicationContext())){
PushManager.startWork(getApplicationContext(),
PushConstants.LOGIN_TYPE_API_KEY,
Utils.getMetaValue(this,"api_key"));
}
7,修改百度给的MyPushMessageReceiver.java 文件,进行我们一些自定义的处理,我们目前的处理主要是 在 onMessage中收到消息后,在系统状态栏里面加入提醒以及点击提醒后的处理。
最后:
需要说明的是,在我们的服务端也要相应的加入百度推送的东西。
不过在服务端没有加好之前,我们也可以用百度的开发者管理平台进行客户端代码的测试。