App之百度云推送

下载最新的Android SDK压缩包并解压,在新建工程或已有工程中增加百度云推送功能。
我下载的是 

,里面有一个同名的文件夹,文件夹中有

导入云推送jar包和so文件:

将解压后的libs文件夹中所有文件拷贝到您的工程的libs文件夹中。如果您的工程中没有其他的.so文件,建议只拷贝armeabi文件夹。如果您的工程中还使用了其他的.so文件,只需要拷贝对应目录下的.so文件即可。如果你使用的Android开发环境是Android Stutio,在工程中“src/main”目录中新建名为jniLibs的目录,将libs文件夹中文件拷贝到“jniLibs”目录内。 

将解压后的libs中的文件拷贝到工程libs中对应的目录中,没有目录的话,直接拷贝目录。

其中用红线框住的是从SDK压缩包中拷贝到工程中的,其他的文件或目录都是工程原有的。

配置AndroidManifest文件:

在当前工程的AndroidManifest.xml文件中,添加权限和声明信息:

 1 <!-- Push service 运行需要的权限 -->
 2 <uses-permission android:name="android.permission.INTERNET" />
 3 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 4 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 5 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 6 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
 7 <uses-permission android:name="android.permission.VIBRATE" />
 8 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 9 <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
10 <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
11 <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
12 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
13 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
14 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
15
16 <!-- !!!!!下面的标签要放在application标签内!!!!! -->
17 <!-- 4.6版本新增的Activity声明,提升Push后台存活率 -->
18 <activity
19     android:name="com.baidu.android.pushservice.PushKeepAlive"
20     android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
21
22 <!-- push service start -->
23 <!-- 用于接收系统消息以保证PushService正常运行 -->
24 <receiver android:name="com.baidu.android.pushservice.PushServiceReceiver"
25     android:process=":bdservice_v1" >
26     <intent-filter>
27         <action android:name="android.intent.action.BOOT_COMPLETED" />
28         <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
29         <action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
30         <action android:name="com.baidu.android.pushservice.action.media.CLICK" />
31         <!-- 以下四项为可选的action声明,可大大提高service存活率和消息到达速度 -->
32         <action android:name="android.intent.action.MEDIA_MOUNTED" />
33         <action android:name="android.intent.action.USER_PRESENT" />
34         <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
35         <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
36     </intent-filter>
37 </receiver>
38 <!-- Push服务接收客户端发送的各种请求-->
39 <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver"
40     android:process=":bdservice_v1" >
41     <intent-filter>
42         <action android:name="com.baidu.android.pushservice.action.METHOD" />
43         <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
44     </intent-filter>
45     <intent-filter>
46         <action android:name="android.intent.action.PACKAGE_REMOVED" />
47         <data android:scheme="package" />
48     </intent-filter>
49 </receiver>
50 <service android:name="com.baidu.android.pushservice.PushService" android:exported="true"
51     android:process=":bdservice_v1" >
52     <intent-filter >
53             <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
54     </intent-filter>
55 </service>
56 <!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 -->
57 <service android:name="com.baidu.android.pushservice.CommandService"
58     android:exported="true" />
59 <!-- push结束 -->
 

启动云推送

在当前工程的主Activity的onCreate函数中,添加以下代码:

PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"api_key")

其中的“API Key“需要手动修改为指定应用的API Key。

自定义回调类

在当前工程中新建一个PushTestReceiver类(类名可以是其他任意),该类要继承PushMessageReceiver,并重载所有的回调函数:

代码如下:

在当前工程的AndroidManifest.xml文件中,添加自定义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>

运行App

右键点击当前工程,选择Run As --> Android Application,选中已连接的设备或Android虚拟机,运行该程序。如果在logcat中的回调函数中的errorCode为0,说明已经绑定成功,并返回userid和channelid,我们就可以在云控制台推送通知和透传消息到该app了。

处理推送消息

推送

在集成SDK后,可以通过以下两种方式推送消息。

    1. 通过控制台推送消息。

      1. 在百度云推送控制台 http://push.baidu.com/console/app 中创建应用,并进行应用配置
      2. 进入应用管理,API KEY等都是从里面找到的。
      3. 推送列表
      4. 点击重发。(注意:推送成功并不表示手机就收到了消息通知,只有到达数+1时,才表示有手机收到了该通知)
    2. 通过服务端SDK推送消息,目前服务端提供 java和php 两种语言的SDK,其它语言可以通过包装RestAPI使用云推送服务。

接收通知消息

当设备接收到通知消息后,查看手机的通知栏,可以看到通知栏内的新通知展示。如图:

通知到达时,当通知被用户点击时,会回调onNotificationClicked函数。

时间: 2024-10-05 21:46:02

App之百度云推送的相关文章

Android项目集成百度云推送,无法回调到PushMessageReceiver中onBind方法的问题与解决

今天准备集成百度云推送,因为据朋友说,百度云推送作为android的推送还是相对稳定的. 开发工具:android studio 1.2.1.1  系统:Mac os x 10.10.3 立即下载了最新的V4.4.1版本的百度云推送demo,仔仔细细按照文档一步一步做完.但是测试的时候,就是回调不了. 最后在百度云应用管理详情中,看见了“生成快速示例的按钮”,生成之后安装,发现可以正常使用.于是开始研究这个快速示例,最后发现只有一处不同:armeabi/libbdpush_V2_2.so和mip

Android使用第三方推送(二)百度云推送

时间过得好快,转眼就是12月了.工作了之后,发现节奏停不下来,像是被上了发条,再也由不得自己.工作日如流水,周末更是转瞬即逝.其实想想也是有时间的,只不过没有很好的利用,或者花在了没有意义的事情上面.人总是有惰性的,但是持续下去就不好了. 上周开始接触第三方云推送,先后体验了极光推送,个推和百度云推送,也感受了各个平台的特性.有的部署便捷,有的功能强大,有的稳定可靠.今天简单介绍一下百度云推送的使用. 百度云推送给我的感觉就是稳定可靠,毕竟是百度出品,值得信赖.而且富媒体推送也是免费,又胜出极光

消息推送之百度云推送Android集成与使用方法

这两天由于项目需要,研究了一下百度云推送,本来这事没什么多大工作量的,但注册百度开发者账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路.好在我耗费了N多个毫毫秒秒后稀里哗啦的闯了过来. 在此先吐槽一下.这个云推送虽然没多少东西,但对于初次接触的人来说还是有点不利索的,所以肯定要看官方文档,只是不知是百度哪个哥们做的文档,pdf做的也太不地体贴了:英文字符里面竟然有中文空格,复制到自己的项目中发现江山一片红,娘的,这猛一看还不一定能看得出来到底是哪里出了错. fo

消息推送之百度云推送Android集成与用法

这两天因为项目须要.研究了一下百度云推送,本来这事没什么多大工作量的,但注冊百度开发人员账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路. 好在我耗费了N多个毫毫秒秒后稀里哗啦的闯了过来. 在此先吐槽一下.这个云推送尽管没多少东西,但对于初次接触的人来说还是有点不利索的,所以肯定要看官方文档.仅仅是不知是百度哪个哥们做的文档.pdf做的也太不地体贴了:英文字符里面居然有中文空格,拷贝到自己的项目中发现江山一片红,娘的.这猛一看还不一定能看得出来究竟是哪里出了错.

Android第十三期 - 百度云推送(百度后台版)

这回比较费事儿,我给学弟学妹分解一下,下面开始: 配置部分: 1.去百度云推送注册账号,配置一下,如图: 2.点击消息跳转的配置部分,如图: 3.发送消息的配置,如图: 这样就完成百度后台的发送消息的服务器的配置了. 接着是App的代码部分: 1.MyPushMessageReceiver:  package com.baidu.push.example; import java.text.SimpleDateFormat; import java.util.Date; import java.

百度云推送的简单集成

1.在百度云推送的应用管理页面,创建自己的应用,创建应用时,需要提供两个证书,开发环境的推送证书和正式环境的推送证书.证书的格式是pem格式的,需要先在apple 开发者中心配置好推送证书,安装到mac上,在钥匙串中到处保存为.p12格式的证书,再到终端执行以下命令转成pem文件,并上传到百度云推送应用管理页面. openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes 注意:如果用企业证书,想导出安装包给企业内部人员使用,也是用开

百度云推送push的使用

这是我第一个使用的推送服务,百度云推送 废话不多说,开始上内容 功能实现过程: 1. 到百度云推送官网下载最新版本的SDK http://push.baidu.com/sdk/push_client_sdk_for_android 2. 将SDK下的jar包和so文件拉到项目中libs目录下 3. 添加AndroidManifest.XML配置权限 <!-- Push service 运行需要的权限 --><uses-permission android:name="andro

Android推送 百度云推送 入门篇

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/27231237 现在app基本都有推送的功能,于是看了下百度云的推送,官方文档和Demo都很到位,记录下使用过程,目标是利用百度云推送最为服务器写个及时通讯的例子~当然了,这是第一篇入门~ 1.第一步就是在百度开发者服务管理中创建项目,然后拿到API key , Secret Key ;这个过程就不多说了,上官网直接申请就行,不复杂. 2.下载云推送的客户端SDK,SDK的压缩文

百度云推送服务的使用总结

最近自己接的IOS项目快完结了,这个项目中最大的收获就是聊天功能的实现,说实话第一次用百度云推送的服务, 相当难用,文档不全,效果不稳定,不过最后还是搞好了.好了下面讲讲技术细节 一.概述 我们知道现在的应用都需要推送的功能,推送分两种: 1.广播一条消息,所有机器就会自动产生提示. 2.或者你想发给某个用户,只有他会收到消息,这就是单播. 我们可以利用单播进行点对点通讯.实现即时聊天. 百度给每个设备自动分配一个id,发消息的时候指定对方的id就可以发过去 二.使用接口 百度自身的ios的sd