上一篇《百度消息推送REST API探究》中了解了如何使用REST API推送消息,这一篇我们来看一下百度消息推送为我们提供的SDK.
帮助文档:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/api
我们先来看一下服务端SDK
下载解压后的目录结构
还是前面提到的那句话,先看sample
03 | import com.baidu.yun.channel.auth.ChannelKeyPair; |
04 | import com.baidu.yun.channel.client.BaiduChannelClient; |
05 | import com.baidu.yun.channel.exception.ChannelClientException; |
06 | import com.baidu.yun.channel.exception.ChannelServerException; |
07 | import com.baidu.yun.channel.model.PushBroadcastMessageRequest; |
08 | import com.baidu.yun.channel.model.PushBroadcastMessageResponse; |
09 | import com.baidu.yun.channel.model.PushUnicastMessageRequest; |
10 | import com.baidu.yun.channel.model.PushUnicastMessageResponse; |
11 | import com.baidu.yun.core.log.YunLogEvent; |
12 | import com.baidu.yun.core.log.YunLogHandler; |
14 | public class AndroidPushNotificationSample { |
16 | public static void main(String[] args) { |
60 | PushBroadcastMessageResponse response = channelClient.pushBroadcastMessage(request); |
63 | System.out.println( "push amount : " + response.getSuccessAmount()); |
65 | } catch (ChannelClientException e) { |
68 | } catch (ChannelServerException e) { |
70 | System.out.println(String.format( |
71 | "request_id: %d, error_code: %d, error_message: %s" , |
72 | e.getRequestId(), e.getErrorCode(), e.getErrorMsg())); |
例子很简单,从名字上就能看出作用,这里就不啰嗦了。
下面我们来看看客户端的SDK
下载Android端SDK后解压如下
从用户手册中我们可以看到,Android Push服务以后台service方式运行,如果某个手机中集成了多个百度推送服务,为了减少内存和和功耗,只有一个后台service来共享Push通道。
接下来来看一下用户手册:
根据用户手册上的描述,我做了一个最简Demo,这个demo完全可以满足一般需求。
MainActivity.java
01 | public class MainActivity extends Activity { |
04 | protected void onCreate(Bundle savedInstanceState) { |
05 | super .onCreate(savedInstanceState); |
06 | setContentView(R.layout.activity_main); |
08 | PushManager.startWork(getApplicationContext(), |
09 | PushConstants.LOGIN_TYPE_API_KEY, "自己的apikey" ); |
PushReciver.java
01 | package com.example.baidulotterypush; |
03 | import android.content.BroadcastReceiver; |
04 | import android.content.Context; |
05 | import android.content.Intent; |
06 | import android.util.Log; |
07 | import android.widget.Toast; |
09 | import com.baidu.android.pushservice.PushConstants; |
11 | public class MyPushMessageReceiver extends BroadcastReceiver{ |
13 | private static final String TAG = "大碗干拌" ; |
16 | public void onReceive(Context context, Intent intent) { |
17 | if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) { |
19 | } else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) { |
21 | } else if (intent.getAction().equals( |
22 | PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) { |
23 | Log.i(TAG, "title = " + intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE)); |
24 | Log.i(TAG, "content = " + intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT)); |
运行结果:
Demo下载地址:http://download.csdn.net/detail/lxq_xsyu/6954373