android集成华为push 6003错误,以及华为低版本crash问题

前段时间项目需要接入推送功能,最终对比选择了使用极光推送,但是极光结束后台进程是收不到push消息的,需要我们自己去集成第三方平台,比如:小米,华为,魅族


极光接入华为:极光根据 EMUI 系统版本间差异,现采取的方案是 EMUI 4.1 及以上版本,使用 HMS 服务,通知 HMS 通道;对于 EMUI 4.1 以下版本还是⾛极光通道。

当初接入华为push时候 SHA256指纹证书设置成debug的证书了,后来发现证书指纹放错了,想修改成release的SHA256证书指纹,修改过后华为开发者联盟显示的也是修改过后的release的SHA256,但是使用release包经过测试项目发现 结束后台进程还是收不到push消息,而用华为开发者联盟上推送的push消息APP中是可以收到的。报错:6003(StatusCode.CERT_FINGERPRINT_ERROR) 

华为官方的解释:

就纳闷了,SHA256证书指纹明明是修改过后的release怎么就收不到push消息呢。华为移动服务缓存也清理过了,等也不止10分钟了。实在找不到办法,试试debug结束进程能不能收到吧。结果用debug包发现结束进程是可以收到push消息的。问题定位出来了,原来是华为的证书指纹替换了并没有生效,还是原来的debug证书指纹在生效。后来找华为官方帮忙解决。官方给出的解释也是:这个证书一般不要轻易替换,替换之后有时候数据库缓存啥的偶尔会出现问题。 

晕,这种这么小概率的事情怎么就发生在我身上了呢!不过也是吃一堑长一智。希望大家如果遇到类似的问题也能得到尽快解决。避免不必要的时间浪费。

SHA256证书指纹弄好以后,本以为没啥问题了。后来使用低版本华为(EMUI3.0)手机发现打开项目直接crash,对比接入文档,极光和华为提供的和我自己接入的都一样的。没毛病啊。  最终问题定位在

<provider
            android:name="com.huawei.hms.update.provider.UpdateProvider"
            android:authorities="com.hjh.hdd.hms.update.provider"
            android:exported="false"
            android:grantUriPermissions="true"></provider>

去掉这个provider在低版本就不会crash,而且可以正常收到push。高版本华为也是可以的。但是加上终有加上的道理吧。

华为官方文档:这个provider是用户引导升级华为移动服务的。使用push是需要将华为移动服务升级到最新的。


但是加上低版本不兼容啊。怎么办怎么办?google了一圈也没找到解决办法。那就找华为的技术支持吧。

最终解决方案:在这个provider加个process标签可适配华为低版本crash问题,同时引导升级HMS也保留

 <!--华为推送-->
        <provider
            android:name="com.huawei.hms.update.provider.UpdateProvider"
            android:authorities="com.hjh.hdd.hms.update.provider"
            android:exported="false"
            android:process=":updateProvider"
            android:grantUriPermissions="true"></provider>
华为技术人员给出的解释是:之前有个别开发者也遇到客这个问题,最后加了一个守护进程就解决了,SDK编译的版本比较高的,Android4.4以后进程管理有了比较大的变化,低版本加了守护进程后,能够保证正常下载完毕。而且还与集成有关系,复杂一点的项目有时候会出现问题 复杂项目结构,涉及到进程之间的交互,容易出不好定位的问题

到此推送遇到的莫名BUG也解决了。提醒大家这种第三方的遇到一些莫名其妙的问题不要死磕。浪费不必要的时间。

关于process的相关文章:https://developer.android.com/guide/components/processes-and-threads.html?hl=zh-cn

https://www.jianshu.com/p/54d2983bea2c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值