文档中心有个 3分钟快速入门 http://push.baidu.com/doc/guide/join
点击下载SDK 立即下载
点击创建应用 (注意包名) 创建完成 点击应用配置 有API KEY值
剩下看文档中心http://push.baidu.com/doc/android/api
注意 其中配置权限下面的放到MainActivity创建之下要不然会报设备为空
百度云推送步骤:
1.首先进入百度云推送平台,登录百度账号;
2.点击下载SDK,Android客服端Android V4.6.3版本下载;这是目前最新的版本,一般就是下载最新的版本,下载完成后;
3.创建应用,(为了得到一个key值,因为项目工程里需要用这个key值),一个应用对应一个key值,一个key值只能被一个项目工程程序所应使用,下一步是应用配置,点击小机器人,下一步填写应用包名(这个应用包名其实就是你需要推送的项目工程程序的mainactivity的路径,如:com.bawei.jinritoutiao)点击保存,创建好后,点击操作那列里面的应用配置可以看见自己刚才创建的应用里的key值(注意:要的是API KEY 后面的key值);
4.打开文档中心,找到客户端SDK文档下面的Android SDK文档(相当于教程);
5.打开刚才下载好的SDK压缩包,解压后里面有一个Demo 这是人家百度给你的一个实例,可以导入到exlipce里面(导入时要选择的Android包下那个(Existing Android Code Into Workspace)),他这个小Demo里面导入会有一个类报错,找到这个类,把里面的两行代码注释掉就行了,还有去mainifext.xml里面把 <meta-data
android:name="api_key"
android:value="cPI2v7us5pe7tGMQTIV0nxU8" />
那个value值是你在百度云推送里申请应用里面的key值;好了这是先运行一下人家的项目,先看看效果如何;
6.下面是把自己的项目程序加上这个百度云推送这个功能,还是先打开刚才解压的SDK包,打开那个libs文件夹,把里面的armeabi文件夹,mips文件夹和pushserviece-4.6.2.39.jar包这三个拷到自己要运行的项目工程里面;
7.然后在自己的项目里面开始配置了,在manifext.xml里面,加上下面的权限;
<!-- 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.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
然后在 mainactivity 的 <activity
android:name="com.example.jinritoutiao.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这个类所在的activity配置下面;加入一下代码;
<!-- 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结束 --> <!-- 4.6版本新增的Activity声明,提升Push后台存活率 --> <activity android:launchMode="singleInstance" android:name="com.baidu.android.pushservice.PushKeepAlive" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
8.在当前工程的主ativity也就是mainactivity的oncreate()方法里面第一行加上以下代码:
PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"api_key");
把"api_key"改为你在百度云里面给自己这给项目程序申请的应用里面所对应的key值;
9.在当前的自己这个工程里面(就在mainactivity所在的包里面创建就行)新建一个普通类,new->class类,继承extends PushMessageReceiver 实现里面的方法就行了;
10.再打开mainfext.xml在刚才添加的接受(receiver)权限下面(第二个receiver)下面放入以下代码:
<!-- 此处Receiver名字修改为当前包名路径 --> <receiver android:name="YourPackageName.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>
把那个name后面的YourPackageName改为你刚才创建的那个普通类的全路径名;
右键点击当前工程,选择Run As --> Android Application,选中已连接的设备或Android虚拟机,运行该程序。如果在logcat中的回调函数中的errorCode为0,说明已经绑定成功,并返回userid和channelid,我们就可以在云控制台推送通知和透传消息到该app了。
11.然后打开百度云推送平台,找到你这个项目所对应的应用,点击操作栏下面的应用配置进入,点击 推送下面的几个选项任意一个,就能发消息了 , 然后模拟器上运行的这个项目程序就能收到刚发的消息了。