【友盟+】推送接入到项目所遇到的坑

基于Android Studio的推送配置以及在集成时所遇到的一些问题

一:快速集成

       1.SDK配置

            按照现有的sdk工程配置:添加SDK依赖   添加集成之后在测试环境内(包括push测试环境和debug打包环境)进行调试所有数据都能正常推送集成(包括小米,华为手机)。

  需要注意SDK使用jcenter依赖的时候添加一下最新的common依赖(官网内的文档1.5.4是未更新为最新的sdk依赖),不然后期有问题问客服直接会说依赖过低。

  最新的可以去下载的SDK里面看一下common的jar包,解压下来之后在common包下面找(umeng-common-2.0.2.jar)后面的2.0.2即是对应的版本

    //PushSDK必须依赖基础组件库,所以需要加入对应依赖
    compile 'com.umeng.umsdk:common:2.0.2'
    //PushSDK必须依赖utdid库,所以需要加入对应依赖
    compile 'com.umeng.umsdk:utdid:1.1.5.3'
    //PushSDK
    compile 'com.umeng.umsdk:push:5.0.2'

       2:厂商通道(目的是为了使送达率提高)

小米华为厂商手机需在 小米Push通道  华为Push通道  进行特殊的厂商集成达到更高的接受率(魅族Push通道Push通道无测试机型不做解释)

       小米手机:手机应用使用一键清除功能后会接收不到(MI3),在应用打开状态时可以接收到的

       华为荣耀8(借用的测试小伙伴的手机):在debug打包的模式下后台清除后可以接收到数据且反映都正常。

       oppo r9  5.0系统清除后台可以收到

       

       3:初次遇到的问题

所有机型遇到问题:打完release包之后安装到手机上之后会发现打开应用的过程中闪屏一下直接应用停止运行;这个要多注意下是否友盟的混淆配置的原因:


-dontwarn com.umeng.**
-dontwarn com.taobao.**
-dontwarn anet.channel.**
-dontwarn anetwork.channel.**
-dontwarn org.android.**
-dontwarn org.apache.thrift.**
-dontwarn com.xiaomi.**
-dontwarn com.huawei.**
-dontwarn com.meizu.**

-keepattributes *Annotation*

-keep class com.taobao.** {*;}
-keep class org.android.** {*;}
-keep class anet.channel.** {*;}
-keep class com.umeng.** {*;}
-keep class com.xiaomi.** {*;}
-keep class com.huawei.** {*;}
-keep class com.meizu.** {*;}
-keep class org.apache.thrift.** {*;}

-keep class com.alibaba.sdk.android.**{*;}
-keep class com.ut.**{*;}
-keep class com.ta.**{*;}

-keep public class **.R$*{
   public static final int *;
}

 

二:手动集成

     集成文档链接地址

     最主要问题so包不兼容的问题:出现原因,下载下来集成到项目中之后在华为手机上无法获取到Device Token(Log打印:注册不成功,无法获取到device token,并且log中显示accs bindapp error)

     官方解决方案:使用之后在本人开发的项目中依旧是不能获取到Token,客服以及工单处理人员都反馈so文件夹和里面的.so文件主工程与push需要一致,而且apk包解压之后的lib包也需要一致(这个存在一定的疑点,做过NDK开发的同学可以交流一下两个平台的so问什么不能达到兼容(Udesk+push),给点见解),本人项目中的解压下来的lib包下的so文件夹与.so文件会在个别so文件夹下多了几个(多的几个是接入的另外第三方库Udesk导致的),由于此问题的出现一直没有解决打算弃用,换了一家接入成功之后,后来又尝试性使用快速集成的方式结果很意外的可以使用了(打包之后的apk文件解压下来lib文件同手动集成后的so文件部分版本编号不一致)。

【手动集成的部分so文件版本是3.1.11如图一(apk解压后的lib);快速集成方式的so文件版本是3.1.14如图二】

【友盟+】推送接入到项目所遇到的坑_第1张图片 手动集成推送解压apk后的lib包下so文件 【友盟+】推送接入到项目所遇到的坑_第2张图片 快速集成推送解压apk后的lib包下so文件

 

三:接收消息

       1:注意系统通知栏的设置,默认可能是不开启的

                    推送后台显示送达手机上没收到:

                         1:去系统设置找到相应的应用查看是否开启了状态栏通知,部分手机厂商会默认关闭状态,打开之后测试即可接受到

                         2:是否调用了PushAgent的setPushIntentServiceClass方法,如果调用了,需自己写代码实现通知的弹出。

 

       2: 接收不到消息

                   先在U-Push平台的【工具】位置查看一下Device Token是否在线;离线解决文档       

【友盟+】推送接入到项目所遇到的坑_第3张图片 推送Device Token状态查询

                      

                      2-1:Device token离线时,小米手机无法接受到消息,但是测验华为手机可以,具体可以查看具体情况。

                                离线原因:

                                       1:由于部分厂商原因把应用清除后台(杀掉进程)后Device Token就属于离线状态

                                       

                                       

 

 

 

 

你可能感兴趣的:(【友盟+】推送接入到项目所遇到的坑)