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

首頁 > 系統(tǒng) > Android > 正文

Android小米推送簡單使用方法

2019-12-12 03:52:39
字體:
供稿:網(wǎng)友

公司項目需要做推送,我們選擇用小米推送,經(jīng)過一段時間的摸索,終于可以簡單的使用小米推送了。

1.創(chuàng)建賬號登入后 登入后選擇消息推送:


2.進入后創(chuàng)建項目,按照步驟創(chuàng)建完后如下


3.后臺配置完了,我們再配置代碼,第一次使用小米推送 我下了個Demo再把里面有用的復(fù)制到自己項目中:

先把jar包復(fù)制到自己項目中


首先在繼承了Application的類中放入

private static final String APP_ID = "2882303761517483058";  // user your appid the key.  private static final String APP_KEY = "5951748376058";   // 此TAG在adb logcat中檢索自己所需要的信息, 只需在命令行終端輸入 adb logcat | grep  // com.xiaomi.mipushdemo  public static final String TAG = "com.dodonew.epapp"; 

Id 和key什么的都是在小米開放平臺創(chuàng)建項目獲得的
再在Appliction的oncreate()方法中加入:

if (shouldInit()) {    MiPushClient.registerPush(this, APP_ID, APP_KEY);   }   LoggerInterface newLogger = new LoggerInterface() {     @Override    public void setTag(String tag) {     // ignore    }     @Override    public void log(String content, Throwable t) {     Log.d(TAG, content, t);    }     @Override    public void log(String content) {     Log.d(TAG, content);    }   };   Logger.setLogger(this, newLogger);   if (sHandler == null) {    sHandler = new DemoHandler(getApplicationContext());   } 

其中shouldInit()和Handler:

private boolean shouldInit() {   ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));   List<RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();   String mainProcessName = getPackageName();   int myPid = Process.myPid();   for (RunningAppProcessInfo info : processInfos) {    if (info.pid == myPid && mainProcessName.equals(info.processName)) {     return true;    }   }   return false;  }   public static DemoHandler getHandler() {   return sHandler;  }  public static class DemoHandler extends Handler {    private Context context;    public DemoHandler(Context context) {    this.context = context;   }    @Override   public void handleMessage(Message msg) {    String s = (String) msg.obj;    if (sMainActivity != null) {     sMainActivity.refreshLogInfo();    }    if (!TextUtils.isEmpty(s)) {     // Toast.makeText(context, s, Toast.LENGTH_LONG).show();    }   }  } 

說實話Demohander其實沒什么用,主要是彈出toast提示而已,我不喜歡 于是隱藏了toast
其中MainActivity中的refreshLogInfo()方法:

public void refreshLogInfo() {   String AllLog = "";   for (String log : logList) {    AllLog = AllLog + log + "/n/n";   }   System.out.println("mainActivity中消息推送::::::::"+AllLog);  } 

然后 我們要把Demo中的一個廣播類復(fù)制過來 ,由于內(nèi)容一樣我就不復(fù)制了
其中有個方法很重要: onNotificationMessageClicked(Context context, MiPushMessage message)

這個方法的作用是:當有消息推送到你手機上時 你在通知欄點擊這個消息時,就能在這個方法中通過message獲取 消息的內(nèi)容。

第二 加入你想點擊通知欄中的消息 跳轉(zhuǎn)到你app中指定的界面 也在這個方法中執(zhí)行 只需要添加一段代碼即可:

Intent intent = new Intent(context, 指定的Activity.class);   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   context.startActivity(intent); 

最后 我們要去配置AndroidManifest.xml
一些權(quán)限我就不放了 和以前的權(quán)限放一起了不好區(qū)分,可以去Demo中找
在權(quán)限下面放

<permission   android:name="com.dodonew.epapp.permission.MIPUSH_RECEIVE"   android:protectionLevel="signature" />   <uses-permission android:name="com.dodonew.epapp.permission.MIPUSH_RECEIVE" />  <uses-permission android:name="android.permission.VIBRATE" /> 

在<Appliction/>中添加

<service    android:name="com.xiaomi.push.service.XMJobService"    android:enabled="true"    android:exported="false"    android:permission="android.permission.BIND_JOB_SERVICE"    android:process=":pushservice" />    <service    android:name="com.xiaomi.push.service.XMPushService"    android:enabled="true"    android:process=":pushservice" />    <service    android:name="com.xiaomi.mipush.sdk.PushMessageHandler"    android:enabled="true"    android:exported="true" />   <service    android:name="com.xiaomi.mipush.sdk.MessageHandleService"    android:enabled="true" />    <receiver    android:name="com.dodonew.epapp.control.receiver.XiaoMiMessageReceiver"    android:exported="true">    <intent-filter>     <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />    </intent-filter>    <intent-filter>     <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />    </intent-filter>    <intent-filter>     <action android:name="com.xiaomi.mipush.ERROR" />    </intent-filter>   </receiver>   <receiver    android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"    android:exported="true">    <intent-filter>     <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />      <category android:name="android.intent.category.DEFAULT" />    </intent-filter>   </receiver>   <receiver    android:name="com.xiaomi.push.service.receivers.PingReceiver"    android:exported="false"    android:process=":pushservice">    <intent-filter>     <action android:name="com.xiaomi.push.PING_TIMER" />    </intent-filter>   </receiver> 

就可以了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滦南县| 繁昌县| 白沙| 通榆县| 孟津县| 阿荣旗| 岫岩| 遂宁市| 内黄县| 明光市| 阜康市| 纳雍县| 九龙城区| 修水县| 陆丰市| 丘北县| 黔西县| 华宁县| 莱芜市| 磐石市| 神农架林区| 广东省| 朝阳县| 左贡县| 广德县| 高安市| 旺苍县| 滦南县| 普洱| 渭源县| 军事| 阿巴嘎旗| 临朐县| 威宁| 尼勒克县| 游戏| 长宁县| 沧源| 玛曲县| 晋州市| 霞浦县|