国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用個推實現三方應用的推送功能

2019-12-12 05:39:37
字體:
來源:轉載
供稿:網友

PS:用了一下個推.感覺實現第三方應用的推送功能還是比較簡單的.官方文檔寫的也非常的明確.

學習內容:

1.使用個推實現第三方應用的推送.

所有的配置我最后會給一個源代碼,內部有相關的配置和文檔來幫助大家完成配置,在這里就不進行介紹了.

感覺需要寫的東西不是非常的多,因為官方的文檔已經寫的非常的明確了,如何進行配置,導入jar包,.so文件,以及AndroidManifest的文件的相關配置都寫的非常的明確.我這里就稍微的簡單介紹一下.注冊賬號什么的我就不說了,這些基本的東西沒有減少的必要性.

i.PushManager

PushManager是實現推送的核心類,可以進行推送控制,設置標簽,設置別名,設置默認時間等.所有的接口都由這個對象去調用.因此我們需要初始化PushManager對象.

復制代碼 代碼如下:
PushManager.getInstance().initialize(context);

對象的創建方式是單列的.因此拿到的對象也就具有唯一性.這里獲取到PushManager對象的同時去初始化個推服務,接口調用之后個推服務后臺運行,通過廣播的方式將CID發送給App.這里其實最重要的就是這個廣播,其他的東西都沒有什么重點的地方.只需要稍微的注意一下即可.

ii.GeTuiPushReceiver app接收CID的廣播

package com.example.totem.getuidemo.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import com.igexin.sdk.PushConsts;import com.igexin.sdk.PushManager;/** * Created by Totem on 2016/8/15. * @author 代碼丶如風 */public class GeTuiPushReceiver extends BroadcastReceiver { public static String KEY_CLIENT_ID = "push_notification_client_id"; public static String message; public static void init(Context context){  /**   * 初始化對象   * 可以進行推送控制,設置標簽,設置別名,設置默認時間等   * 所有接口都由該對象調用   * */  PushManager.getInstance().initialize(context);  /**   * 獲取ClientId   * */  String clientId = PushManager.getInstance().getClientid(context);  if(clientId != null){   KEY_CLIENT_ID = clientId;  } } @Override public void onReceive(Context context, Intent intent) {  //相關處理 } private static OnGetPushMessageListener onGetPushMessageListener; public static void setOnGetPushMessageListener(OnGetPushMessageListener onGetPushMessageListener) {  GeTuiPushReceiver.onGetPushMessageListener = onGetPushMessageListener; } /**  * 對外暴露接口  * */ public interface OnGetPushMessageListener{  void getOstfMessage(String message); }}

這個廣播是接收推送消息的核心類,其實實現起來也是比較簡單的,首先就是獲取PushManager對象,然后初始化個推服務,在OnReceiver方法中對傳遞過來的數據進行判斷,這里只對兩種狀態進行了判斷,一種是推送通知,另一種則是透傳消息.

@Override public void onReceive(Context context, Intent intent) {  Bundle bundle = intent.getExtras();  switch (bundle.getInt(PushConsts.CMD_ACTION)){   /**    * 推送通知    * */   case PushConsts.GET_CLIENTID:    String cid = bundle.getString("clientid");    break;   /**    * 透傳消息,傳遞過來的是Json字符串.一般而言需要客戶端進行解析.    * */   case PushConsts.GET_MSG_DATA:    String appid = bundle.getString("appid");    byte[] payload = bundle.getByteArray("payload");    String taskid = bundle.getString("taskid");    String messageid = bundle.getString("messageid");    if(payload != null){     /**      * 如果拿到的數據不為空.那么做相關的處理      * */     message = new String(payload);     onGetPushMessageListener.getOstfMessage(message);    }else{     message = "";    }    break;  } }

這樣通過判斷,我們就可以得知,是推送通知,還是透傳消息等等.最后寫了一個對外界暴露的接口,其實就對Activity暴露接口,當我們在廣播中接收到了數據發生了變化,或者是有數據傳遞過來,需要通過這個接口的方式,告知數據產生了變化,需要主進程做相關的處理,這是暴露接口的目的.然后在主頁面中,我們只需要實現這個接口就可以了.

GeTuiPushReceiver.setOnGetPushMessageListener(new GeTuiPushReceiver.OnGetPushMessageListener() {  @Override  public void getOstfMessage(String message) {   if(message!=null){    MessageData.add(message);   }  } });

iii.打開推送

turnOnPush(context)方法,用于打開推送,如果我們不主動打開推送的話,就算是后臺發送了推送消息,我們也是接收不到的.在默認的狀態下是開啟狀態.

復制代碼 代碼如下:
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.turnOnPush(this);

iv.關閉推送服務

turnOffPush(context)方法,用于關閉推送服務.這個方法執行之后,就無法收到推送服務了,需要注意的是,想要再次接收到推送,必須使用turnOnPush(context)方法.其他方法無效.

復制代碼 代碼如下:
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.turnOffPush(this);

v.停止SDK服務.

stopService(context).停止SDK服務之后,服務不會終止運行,而是終止推送和聯網功能.重新啟動需要調用initalize()方法或者是turnOnPush()方法.

復制代碼 代碼如下:
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.stopService(this);

基本的東西都介紹完了,還有一些設置標簽,靜默時間,綁定別名什么的,大家如果有興趣可以自己去研究下,反正我是暫時沒有使用到.因此就先不動這幾個模塊了.我們就來看看如何使用個推后臺來實現推送吧.

首先我們需要創建自己的應用,然后我們可以在應用配置當中獲取到我們想要的數據,具體效果如下.

這里有我們想要的數據,AppId,AppKey等等,這些東西都需要在AndroidManifest文件中進行配置.自己做好Demo之后,就可以通過后臺發送推送了.

標題和內容都是必填項,然后一直確定就可以了,這樣消息就被推送出去了.在App上打開推送服務,就可以接收到推送了.透傳消息我就不進行截圖了.需要注意的一點就是透傳消息是Json格式的字串.個推為我們提供好了Json的格式化工具.

最后放上一個源代碼,這個源代碼是無法運行的,因為這里是使用我自己的后臺,大家也需要去創建賬號,用自己的后臺去創建應用,然后把AndroidManifest文件中的AppId,AppKey,AppSecret進行修改.并且內部提供了很多文檔,幫助大家去集成,點擊下載

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连城县| 枝江市| 合水县| 石首市| 松江区| 呈贡县| 邻水| 石台县| 昭苏县| 江西省| 潮州市| 南涧| 正阳县| 出国| 林西县| 邹平县| 怀仁县| 济阳县| 峨边| 新宾| 时尚| 揭阳市| 侯马市| 历史| 都昌县| 安丘市| 昌宁县| 泗水县| 平泉县| 蕲春县| 长治县| 潜江市| 闽清县| 旌德县| 治县。| 扶绥县| 芮城县| 湘乡市| 延津县| 墨玉县| 新巴尔虎左旗|