In the previous article "Baidu message push rest api inquiry", we learned how to use rest api to push messages. In this article, let's take a look at the SDK provided by Baidu message push for us.
Help: http://developer.baidu.com/wiki/index.php? Title = docs/cplat/push/api
Let's take a look at the server SDK.
Directory structure after downloading and unzipping
Let's look at the sample first.
Package test; import com. baidu. yun. channel. auth. channelKeyPair; import com. baidu. yun. channel. client. baiduChannelClient; import com. baidu. yun. channel. exception. channelClientException; import com. baidu. yun. channel. exception. channelServerException; import com. baidu. yun. channel. model. pushBroadcastMessageRequest; import com. baidu. yun. channel. model. pushBroadcastMessageResponse; import com. baidu. yun. channel. model. pushUnicastMessageRequest; import com. baidu. yun. channel. model. pushUnicastMessageResponse; import com. baidu. yun. core. log. yunLogEvent; import com. baidu. yun. core. log. yunLogHandler; public class AndroidPushNotificationSample {public static void main (String [] args) {/*** @ brief Push unicast notification (Android Push SDK intercepts and resolves) message_type = 1 (0 by default) * // 1. set ApiKey/SecretKey String apiKey = "Your apiKey" for the developer platform; String secretKey = "your own secretKey"; ChannelKeyPair pair = new ChannelKeyPair (apiKey, secretKey); // 2. create a BaiduChannelClient instance BaiduChannelClient channelClient = new BaiduChannelClient (pair); // 3. to learn the interaction details, register the YunLogHandler class channelClient. setChannelLogHandler (new YunLogHandler () {@ Override public void onHandle (YunLogEvent event) {System. out. println (event. getMessage () ;}}); try {// 4. create a request object // The ChannelId of the mobile phone end, And the UserId of the mobile phone end. Replace it with 1111111111111. Replace it with your own PushBroadcastMessageRequest request = new PushBroadcastMessageRequest (); // PushUnicastMessageRequest request = new PushUnicastMessageRequest (); request. setDeviceType (3); // device_type => 1: web 2: pc 3: android // 4: ios 5: wp // request. setChannelId (3721876992860457831L); // request. setUserId ("1105477905904433716"); request. setMessageType (1); request. setMessage ("{\" title \ ": \" bowl of dried meat \ ", \" description \ ": \" Welcome to CSDN blog \"}"); // 5. call the pushMessage interface/* PushUnicastMessageResponse response = channelClient. pushUnicastMessage (request); */PushBroadcastMessageResponse response = channelClient. pushBroadcastMessage (request); // 6. system successfully pushed for authentication. out. println ("push amount:" + response. getSuccessAmount ();} catch (ChannelClientException e) {// handle client error exception e. printStackTrace ();} catch (ChannelServerException e) {// handle server error exception System. out. println (String. format ("request_id: % d, error_code: % d, error_message: % s", e. getRequestId (), e. getErrorCode (), e. getErrorMsg ()));}}}
The example is very simple. It can be seen from the name, so it won't be too long here.
Next let's take a look at the client SDK
Download the Android SDK and decompress it as follows:
From the user manual, we can see that the Android Push service runs in the following service mode. If a mobile phone integrates multiple Baidu Push services, in order to reduce memory and power consumption, there is only one backend service to share the Push channel.
Next, let's take a look at the user manual:
According to the description in the user manual, I made a simplest Demo, which can fully meet general requirements.
MainActivity. java
Public class MainActivity extends Activity {@ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); // Log On As apikey, which is usually put in PushManager in onCreate of the main Activity. startWork (getApplicationContext (), PushConstants. LOGIN_TYPE_API_KEY, "Your Own apikey ");}}
PushReciver. java
Package com. example. baidulotterypush; import android. content. broadcastReceiver; import android. content. context; import android. content. intent; import android. util. log; import android. widget. toast; import com. baidu. android. pushservice. pushConstants; public class MyPushMessageReceiver extends BroadcastReceiver {private static final String TAG = "large bowl"; @ Overridepublic void onReceive (Context context, Intent intent) {if (intent. getAction (). equals (PushConstants. ACTION_MESSAGE) {} else if (intent. getAction (). equals (PushConstants. ACTION_RECEIVE) {} else if (intent. getAction (). equals (PushConstants. ACTION_RECEIVER_NOTIFICATION_CLICK) {Log. I (TAG, "title =" + intent. getStringExtra (PushConstants. extra_icationication_title); Log. I (TAG, "content =" + intent. getStringExtra (PushConstants. extra_icationication_content ));}}}
Running result:
Demo: http://download.csdn.net/detail/lxq_xsyu/6954373