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

首頁 > 系統 > Android > 正文

Android小米推送簡單使用方法

2019-10-23 19:50:14
字體:
來源:轉載
供稿:網友

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

1.創建賬號登入后 登入后選擇消息推送:

Android,小米推送

2.進入后創建項目,按照步驟創建完后如下

Android,小米推送

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

先把jar包復制到自己項目中

Android,小米推送

首先在繼承了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什么的都是在小米開放平臺創建項目獲得的
再在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中的一個廣播類復制過來 ,由于內容一樣我就不復制了
其中有個方法很重要: onNotificationMessageClicked(Context context, MiPushMessage message)

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

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

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

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

<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> 

就可以了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 循化| 梧州市| 马山县| 溧阳市| 腾冲县| 酒泉市| 金昌市| 红河县| 庄浪县| 高青县| 麻城市| 南城县| 桦甸市| 苏尼特右旗| 惠来县| 鹤庆县| 林口县| 乡宁县| 凤翔县| 万宁市| 蛟河市| 宁乡县| 祁连县| 大石桥市| 万山特区| 长治市| 洛阳市| 扎鲁特旗| 延川县| 台湾省| 金华市| 陆河县| 奉节县| 毕节市| 赤壁市| 福泉市| 措勤县| 榆树市| 唐山市| 绥化市| 嘉义市|