友盟推送集合小米华为通道

news/2024/12/22 13:56:45/

前面怎么实现不赘述,照着下面链接的官方文档来就可以了
http://dev.umeng.com/sdk_integate/android_sdk/android_push_doc#5
写这篇博客的主要原因是,友盟的官方文档聚合小米华为推送中使用小米弹窗功能(使用华为弹窗同)时,很操蛋的只写了一半,如下图
这里写图片描述

只写了用handler发送信息,并没有说handler里是怎么处理的,最后我自己打印log,获取信息到信息看了下跟UMessage类是一样的就用gson将其转为UMessage对象,handler的处理的具体如下

public class MipushActivity extends UmengNotifyClickActivity {private static String TAG = MipushActivity.class.getName();@SuppressLint("HandlerLeak")private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);Intent intent = new Intent(MipushActivity.this, SplashActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);addMessageToIntent(intent, (UMessage) msg.obj);Log.d("TEST", "uMessage:" + msg.obj.toString());startActivity(intent);finish();}};@Overrideprotected void onCreate(Bundle bundle) {super.onCreate(bundle);setContentView(R.layout.fragment_splash);}@Overridepublic void onMessage(Intent intent) {super.onMessage(intent);  //此方法必须调用,否则无法统计打开数String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);UmLog.i(TAG, body);Log.d("TEST", "body:" + body);UMessage uMessage = new Gson().fromJson(body, UMessage.class);Message message = Message.obtain();message.obj = uMessage;handler.sendMessage(message);}/*** 用于将UMessage中自定义参数的值放到intent中传到SplashActivity中,SplashActivity中对友盟推送时自定义消息作了专门处理* @param intent 需要增加值得intent* @param msg    需要增加到intent中的msg*/private void addMessageToIntent(Intent intent, UMessage msg) {if (intent == null || msg == null || msg.extra == null) {return;}for (Map.Entry<String, String> entry : msg.extra.entrySet()) {String key = entry.getKey();String value = entry.getValue();if (key != null) {intent.putExtra(key, value);}}}}

注意不打算让该activity显示的话可以在AndroidManifest里配置theme
如下

<!--小米弹窗功能activity--><activity android:name=".page.umeng.MipushActivity"android:exported="true"android:theme="@android:style/Theme.NoDisplay"/>

为了防止部分系统出现配置时效,可以在此activity setContentView时将其布局设置的跟应用的首屏页面一样,一般应用首屏都是一张图片的,这样即使失效也只会以为是应用启动信息


http://www.ppmy.cn/news/435867.html

相关文章

如何用小米玩华为游戏华为账号

刷了很多视频和文章终于搞定 每次换手机丢号总是意难平 今天挑战希望小米手机上玩华为的号。目标游戏哈利波特魔法觉醒。 为了省事&#xff0c;安装的时候我把所有权限都开了。有兴趣研究的小伙伴可以自己试试。 下载Hms CORE 这个是框架核心&#xff0c;登录华为账号必须要有…

变限积分求导

前置知识&#xff1a;牛顿-莱布尼茨公式 介绍 形如 G ( x ) ∫ v ( x ) u ( x ) f ( t ) d t G(x)\int_{v(x)}^{u(x)}f(t)dt G(x)∫v(x)u(x)​f(t)dt 的积分称为变限积分。 由牛顿-莱布尼茨公式可得&#xff0c; G ′ ( x ) F ′ ( u ( x ) ) u ′ ( x ) − F ′ ( v ( x…

电子血压仪器小程序开发制作

这个电子血压仪器设备小程序需求&#xff0c;就是让用户通过智能电子血压仪测量血压以后&#xff0c;将相关测量的数据通过手机蓝牙的方式&#xff0c;传递到客户的小程序里面作为档案进行存储。然后用户可以通过测量的数据有小程序进行分析出相关报告。犹豫商业秘密其他的功能…

实用Python程序设计测验练习:正常血压

描述 监护室每小时测量一次病人的血压&#xff0c;若收缩压在90 - 140之间并且舒张压在60 - 90之间&#xff08;包含端点值&#xff09;则称之为正常&#xff0c;现给出某病人若干次测量的血压值&#xff0c;计算病人保持正常血压的最长小时数。 输入 第一行为一个正整数n&a…

毕业设计 基于stm32的血压测量检测系统 - 物联网 单片机

通过单片机32作为主控制器&#xff0c;完成对人体血压的测量&#xff0c;主要方式是通过气压模块来模拟完成对血压的采集&#xff0c;同时将采集到的血压数据在显示屏上进显示。 同时可以通过按键对整个血压上下限值进行设定&#xff0c;一旦超过&#xff0c;则报警。 相关代码…

信息学奥赛C++编程:正常血压

描述&#xff1a; 监护室每小时测量一次病人的血压&#xff0c;若收缩压在90 - 140之间并且舒张压在60 - 90之间&#xff08;包含端点值&#xff09;则称之为正常&#xff0c;现给出某病人若干次测量的血压值&#xff0c;计算病人保持正常血压的最长小时数。 输入&#xff1a;…

自定义View血压

使用 var bpList mutableListOf() av_specific_bp.setBPData(this.bpList) <com.oplayer.orunningplus.view.HomePageBPVIewandroid:id"id/av_specific_bp"android:layout_width"match_parent"android:layout_height"100dp"android:layout_…

STM32单片机开发实例 基于STM32单片机的智能血压计

一、系统设计 通过单片机32作为主控制器&#xff0c;完成对人体血压的测量&#xff0c;主要方式是通过气压模块来模拟完成对血压的采集&#xff0c;同时将采集到的血压数据在显示屏上进显示。同时可以通过按键对整个血压上下限值进行设定&#xff0c;一旦超过&#xff0c;则报…