之前介绍过怎样使用shareSDK实现新浪微博分享功能,今天介绍怎样使用百度云推送SDK实现Android手机后台推送功能。
执行效果例如以下
第一步,假设使用百度的SDK,当然要先成为百度的开发人员啦,这个就不详述了。成为开发人员之后,我们要建立一个应用,例如以下图所看到的
第二步,创建好应用之后,我们点击开方者服务管理,进入project管理页面,然后点击左側云推送,进入云推送功能页面,详细例如以下图
进入云推送具体页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击高速实例,将系统给我们产生的演示样例代码下载下来
下载实例代码
第三步,将实例代码导入Eclipse,開始准备整合。
实例代码结构例如以下
经过整合之后,我们的Demo代码例如以下
主要有这么几个注意点:
1.MainActivity中代码例如以下
public class MainActivity extends Activity { @Override
protected 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 { @Override
public 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这个类是用来接收server发送来的请求的,我这里直接把实例代码中的拷贝了过来,详细功能实现还须要自己改动
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>
这样,当我们在百度的云推送后台发送推送信息的时候,client就能够收到来自我们后台的推送了。
除此之外,百度云推送另一些其它功能,比方设置点击notification之后的显示界面、响声,富文本推送,自己定义notification显示样式等等,假设想了解这些,还是下载SDK文档,文档说的非常清楚。
****的上传资源网页挂掉了,先不传代码了。