android之小米推送

项目中有用到小米推送,这里记录一下(之前一直使用JPush)。

1.在小米开放平台申请应用的小米推送id 和 小米推送key,并下载sdk。

2.将MiPush_SDK_Client_3_4_5.jar依赖到项目中

3.我们选择在app启动时,也就是在Application中初始化小米推送服务

if(shouldInit()) {//判断是否在主进程
    //保存到本地
    SharedPreferences sp = getSharedPreferences(XiaomiMessageReceiver.XIAOMIPRENAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();
    editor.putString(DeviceUtil.getVersionName(BaseApplication.getContext())+XiaomiMessageReceiver.XIAOMOREGIDKEY, "");
    editor.commit();
    MiPushClient.registerPush(this, UrlConfig.MIAPP_ID, UrlConfig.MIAPP_KEY);//注册小米推送服务
}

4.定义小米推送消息接收者

主要是几个回调方法:

1》onReceiveRegisterResult(Context context, MiPushCommandMessage message) //注册小米推送服务的回调

可以通过message得到regid,别名,userAccount标签等推送对象。我公司项目中使用的是regid。

所以在这个回调中得到regid后保存到本地,同时上传到后台,供后台推送消息时使用。

2》onNotificationMessageArrived(Context context, MiPushMessage message) //收到推送消息的回调

可以在这里做收到消息后的操作,比如弹框,跳转等。

3》onNotificationMessageClicked(Context context, MiPushMessage message) //点击通知栏消息的回调

点击通知栏消息一般就是跳转,可以在这个回调中处理。

5.在清单文件中注册

<!--//小米推送-->
<permission
    android:name="项目包名.permission.MIPUSH_RECEIVE"
    android:protectionLevel="signature" />
<!-- 这里com.xiaomi.mipushdemo改成app的包名 -->
<uses-permission android:name="项目包名.permission.MIPUSH_RECEIVE" />

<!-- 小米推送 -->
<service
    android:name="com.xiaomi.push.service.XMPushService"
    android:enabled="true"
    android:process=":pushservice" />
<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必须在3.0.1版本以后(包括3.0.1版本)加入 -->
<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" />
<!-- 注:此service必须在2.2.5版本以后(包括2.2.5版本)加入 -->
<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>
<!-- 接收推送消息 -->
<receiver
    android:name=".receiver.XiaomiMessageReceiver"
    android:exported="true">

    <!-- 这里com.xiaomi.mipushdemo.DemoMessageRreceiver改成app中定义的完整类名 -->
    <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>

上面就是几个重要的点,使用起来也比较简单。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值