標籤:android style blog class code java
前言
系列文章:[傳送門]
泡泡腳,寫寫部落格,規律生活,睡個好覺,待會看會書。
本文
上面講了二維碼產生,及 手機端掃一掃,大家有興趣去看看。
今天我們講一下,百度雲推送平台。
每天想著問題,問題只會慢慢的清晰。想著想著,慢慢模式就出來了。
模式
推送互動模式
①② 所指的是學生群體
③ 所指的是教師
③ :教師可以基於http 給伺服器指示,提示伺服器進行操作(push...等);或是直接在web端進行操作
① :學生群體接受 push,或是直接查看某些通知,或是直接查看富文本,或是然後點擊進行(③步驟)
② : 學生基於http 從伺服器拉去資料
##ps:大家有好的點子 留言
百度雲推送平台
百度雲推送服務的相關資訊,主要包括兩部分:
1. 快速開發使用 Push 服務。
2. 更多 Push 服務的開發及使用功能。
Android端
- 註冊百度帳號,並成為百度開發人員;
- 建立應用,擷取 API Key 及 Secret Key,請參考查看應用密鑰;
- 下載應用樣本;
- 把樣本(Android 項目)匯入 Eclipse 工程;
- 運行樣本應用;
- 登入管理主控台發送通知;
- 手機端接收通知。
詳細資料:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/guide
下面是:
#API Key : 應用標識,服務端綁定和推送都要用到
#Secret Key : 應用私密金鑰,服務端推送時用到
#APP ID: 這個id ,就是個id ,雖然也有唯一行,暫時沒什麼用
#channel ID: 推送通道id,通常對應一台終端。同樣的一個app ,裝在手機A 和手機B上,channel id是不同的。
#user id : 應用的使用者id,同一個使用者,可以在不同的終端上擁有同一個app 。user id 和 channel id 配合使用
服務端
直接上代碼吧
package sedion.jeffli.wmuitp.util.baidu;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 AndroidPushByBaiDuHelper{ private static String apiKey = "xxx"; private static String secretKey = "xxx"; /** * 初始化 * @return */ private static BaiduChannelClient initPushClient() { // 1. 設定developer平台的ApiKey/SecretKey ChannelKeyPair pair = new ChannelKeyPair(apiKey, secretKey); // 2. 建立BaiduChannelClient對象執行個體 BaiduChannelClient channelClient = new BaiduChannelClient(pair); // 3. 若要瞭解互動細節,請註冊YunLogHandler類 channelClient.setChannelLogHandler(new YunLogHandler() { @Override public void onHandle(YunLogEvent event) { System.out.println(event.getMessage()); } }); return channelClient; } /** * 推送廣播訊息(訊息類型為透傳,由開發方應用自己來解析訊息內容) message_type = 0 (預設為0) * @param Content 推送內容 */ public static void pushBroadcastMessage(String Content) { BaiduChannelClient channelClient = initPushClient(); try { // 4. 建立請求類對象 PushBroadcastMessageRequest request = new PushBroadcastMessageRequest(); request.setDeviceType(3); // device_type => 1: web 2: pc 3:android // 4:ios 5:wp request.setMessage(Content); // 5. 調用pushMessage介面 PushBroadcastMessageResponse response = channelClient .pushBroadcastMessage(request); // 6. 認證推送成功 System.out.println("push amount : " + response.getSuccessAmount()); } catch (ChannelClientException e) { // 處理用戶端錯誤異常 e.printStackTrace(); } catch (ChannelServerException e) { // 處理服務端錯誤異常 System.out.println(String.format( "request_id: %d, error_code: %d, error_message: %s", e.getRequestId(), e.getErrorCode(), e.getErrorMsg())); } } /** * 推送單播訊息(訊息類型為透傳,由開發方應用自己來解析訊息內容) message_type = 0 (預設為0) * @param ChannelId 手機端 * @param content 推送內容 * @param UserId 手機端 */ public static void pushMessageSample(String content, long ChannelId,String UserId) { BaiduChannelClient channelClient = initPushClient(); try { //建立請求類對象 // 手機端的ChannelId, 手機端的UserId, 先用1111111111111代替,使用者需替換為自己的 PushUnicastMessageRequest request = new PushUnicastMessageRequest(); request.setDeviceType(3); // device_type => 1: web 2: pc 3:android // 4:ios 5:wp request.setChannelId(ChannelId); request.setUserId(UserId); request.setMessage(content); // 5. 調用pushMessage介面 PushUnicastMessageResponse response = channelClient .pushUnicastMessage(request); // 6. 認證推送成功 System.out.println("push amount : " + response.getSuccessAmount()); } catch (ChannelClientException e) { // 處理用戶端錯誤異常 e.printStackTrace(); } catch (ChannelServerException e) { // 處理服務端錯誤異常 System.out.println(String.format( "request_id: %d, error_code: %d, error_message: %s", e.getRequestId(), e.getErrorCode(), e.getErrorMsg())); } } }
#初始化
#推送廣播訊息(訊息類型為透傳,由開發方應用自己來解析訊息內容) message_type = 0 (預設為0)
* @param Content 推送內容
# 推送單播訊息(訊息類型為透傳,由開發方應用自己來解析訊息內容) message_type = 0 (預設為0)
* @param ChannelId手機端
* @param content推送內容
* @param UserId手機端
總結
算個工具類吧 沒別的。看書咯,加油大家
感謝及資源共用
路上走來一步一個腳印,希望大家和我一起。
感謝讀者!很喜歡你們給我的支援。如果支援,點個贊。
知識來源: 百度雲平台