友盟推送集合小米华为通道
2017-12-14 10:07
330 查看
前面怎么实现不赘述,照着下面链接的官方文档来就可以了
http://dev.umeng.com/sdk_integate/android_sdk/android_push_doc#5
写这篇博客的主要原因是,友盟的官方文档聚合小米华为推送中使用小米弹窗功能(使用华为弹窗同)时,很操蛋的只写了一半,如下图
![](https://img-blog.csdn.net/20171214094243460?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTkyNjk1ODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
只写了用handler发送信息,并没有说handler里是怎么处理的,最后我自己打印log,获取信息到信息看了下跟UMessage类是一样的就用gson将其转为UMessage对象,handler的处理的具体如下
注意不打算让该activity显示的话可以在AndroidManifest里配置theme
如下
为了防止部分系统出现配置时效,可以在此activity setContentView时将其布局设置的跟应用的首屏页面一样,一般应用首屏都是一张图片的,这样即使失效也只会以为是应用启动信息
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() { @Override public 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(); } }; @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.fragment_splash); } @Override public 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时将其布局设置的跟应用的首屏页面一样,一般应用首屏都是一张图片的,这样即使失效也只会以为是应用启动信息
相关文章推荐
- 第三方推送(小米华为友盟)接入实践
- Android 推送集成华为,小米,友盟
- (4.2.12.1)浅谈第三方推送[快速集成]:百度推送、小米推送、华为推送、魅族推送
- 小米推送,华为推送,个推,阿里云推送集成(服务端JAVA开发)
- Android集成小米华为推送以及收不到离线消息的坑
- (4.2.12)浅谈第三方推送[推送基础]:百度推送、小米推送、华为推送
- 友盟推送集成小米华为通道
- (4.2.12.2)浅谈第三方推送[API的不同]:百度推送、小米推送、华为推送
- 集成推送(极光+小米+华为)总结(java服务端)
- android 小米,华为,百度推送封装(QJPushService 使用)
- 华为教小米如何做人:雷军吹牛逼遭通信博士打脸
- Android开发:友盟推送多次重复打开页面,退出时得多次退出才能退出的解决办法(浅显方法)
- Android6.0 打开自启动管理页面(华为、小米)
- 友盟在部分手机上在进程被kill的情况下接收不到推送的问题
- Unity+XiaoMiPush 对接小米推送sdk
- 使用友盟消息推送中遇到的哪些问题--索引(开发者必读)
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试六十题
- 微软开始推送Win10预览版10565慢速通道更新
- 日消息量突破 50 亿,谈小米的高可用推送系统设计