【第三方SDK】使用百度云推送实现推送功能详解
来源:互联网 发布:湖南卫视网络直播平台 编辑:程序博客网 时间:2024/06/05 20:04
之前介绍过如何使用shareSDK实现新浪微博分享功能,今天介绍如何使用百度云推送SDK实现Android手机后台推送功能。
运行效果如下
第一步,如果使用百度的SDK,当然要先成为百度的开发者啦,这个就不详述了。成为开发者之后,我们要建立一个应用,如下图所示
第二步,创建好应用之后,我们点击开方者服务管理,进入工程管理页面,然后点击左侧云推送,进入云推送功能页面,具体如下图
进入云推送详细页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击快速实例,将系统给我们产生的示例代码下载下来
下载实例代码
第三步,将实例代码导入Eclipse,开始准备整合。
实例代码结构如下
经过整合之后,我们的Demo代码如下
主要有这么几个注意点:
1.MainActivity中代码如下
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initWithApiKey();}// 无账号初始化,用api key绑定private void initWithApiKey() {PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"FKkvaMToo1wkeIFEcH7udatc");}}
在主界面要进行api key的绑定,“FKkvaMToo1wkeIFEcH7udatc”这一串数值是应用的api key,在下面这个地方可以获取
2.在MyApplication中,我们需要自定义Application,并按照下面实现(不光有这种形式,更多信息还是看百度SDK的说明文档,说得很详细)
public class MyApplication extends FrontiaApplication {@Overridepublic void onCreate() {super.onCreate();}}自定义Application之后,我们需要在清单文件中进行设置
<application android:name="com.example.baidupush.MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
3.MyPushMessageReceiver这个类是用来接收服务器发送来的请求的,我这里直接把实例代码中的拷贝了过来,具体功能实现还需要自己修改
4.Utils这个类不是关键代码,可以无视
5.必须把libs文件夹下面的资源包拷过来
6.如果要实现富媒体推送,还需要把资源图片和布局也拷贝过来
7.清单文件配置很重要,下面是配置代码和说明
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.baidupush" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <!-- 推送权限,必须加 --> <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" /> <application android:name="com.example.baidupush.MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.baidupush.MainActivity" android:launchMode="singleTask" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- push应用定义消息receiver声明 ,这是对前面MyPushMessageReceiver的注册--> <receiver android:name="com.example.baidupush.MyPushMessageReceiver" > <intent-filter> <!-- 接收push消息 --> <action android:name="com.baidu.android.pushservice.action.MESSAGE" /> <!-- 接收bind,unbind,fetch,delete等反馈消息 --> <action android:name="com.baidu.android.pushservice.action.RECEIVE" /> <!-- 接收notification的点击事件 --> <action android: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> <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> <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> <!-- push结束 --> </application></manifest>
这样,当我们在百度的云推送后台发送推送信息的时候,客户端就可以收到来自我们后台的推送了。
除此之外,百度云推送还有一些其他功能,比如设置点击notification之后的显示界面、响声,富文本推送,自定义notification显示样式等等,如果想了解这些,还是下载SDK文档,文档说的很清楚。
CSDN的上传资源网页挂掉了,先不传代码了。
- 【第三方SDK】使用百度云推送实现推送功能详解
- 使用百度云推送实现推送功能详解
- 使用第三方推送功能变相实现一些即时通讯操作
- 推送的实现,使用百度云推送
- Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送
- 使用第三方推送平台 极光推送
- Android第三方推送——极光推送,百度云推送,个推
- Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送
- (4.2.12)浅谈第三方推送[推送基础]:百度推送、小米推送、华为推送
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- (4.2.12.2)浅谈第三方推送[API的不同]:百度推送、小米推送、华为推送
- (4.2.12.3)浅谈第三方推送[bug查询]:百度推送、小米推送、华为推送
- Android 推送消息的实现,使用百度云推送
- android开发(25) - 推送的实现,使用百度云推送
- android开发(25) - 推送的实现,使用百度云推送
- 第三方推送-极光推送
- 使用百度云推送
- 如何成为一名软件架构师?
- 验证手机号码
- JS重新加载当前页面
- 二叉树常见问题
- 常用排序算法之选择排序c及lua实现
- 【第三方SDK】使用百度云推送实现推送功能详解
- Matlab绘制曲线
- 【JNI】Java与C++中文字串的传递
- Ubuntu 14.04 LTS 解决adb无法运行 提示adb: No such file or directory 安装ia32-libs
- String,StringBuffer与StringBuilder的区别
- Java程序员集合框架面试题(一)
- error: property's synthesized getter follows Cocoa naming convention for returning 'owned' objects
- PHP中$_SERVER的详细参数与说明
- 写给年轻程序员的一封信