首先,说一下,本人第一篇博客,不足之处还请见谅哈。
最近给一家客户做的app,是属于企业内部应用,没有上架各大应用市场。交付了好久之后,客户反映华为手机莫名其妙地安装失败(未知来源应用安装,即使在手机上开启了设置,依旧安装失败),其他品牌的手机倒很正常。出现的问题如下图所示:
想了半天没想明白怎么回事,然后去问度娘,找了两篇相关的文章。链接如下:
1、应用在华为P9手机上安装失败原因分析 (错误码:-110)
当然,按照上面两个大大的描述,我也全部试了一下(悲催的过程刚刚开始)。
首先,按照解决方案,应该是证书问题。使用打包工具DevPeck.exe,即使按照要求,还是提示jdk环境过高,悲催的我猜测大概是win10的电脑不兼容吧。
第二步,找文章中说的那个华为自定义的权限。
<uses-permissionandroid:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permissionandroid:name="com.huawei.permission.sec.MDM"/>
删掉,还是不行(悲催脸)。
无奈之下就只能乖乖去华为开发者联盟查文档,还有看看测试手机打印的log。终于在日志里看到这么个东西。截图我就不附了。大意就是缺少
com.huawei.android.launcher.permission.READ_SETTINGS
com.huawei.android.launcher.permission.WRITE_SETTINGS
这两个权限。然后我就在AndroidManifest.xml 中这样加上权限
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
问题竟然解决了,简直是。。。
分析原因:
1、因为之前咨询过客服,华为在EMUI4.1之后,就已经允许显示其角标,显然不是角标权限的影响。
2、应用涉及到写入系统设置的权限,在华为上应该是需要获取到华为独有的权限授权吧(我猜测的)。
不过还好,问题终于解决了,特地记录一下,也给遇到此问题的各位一点方向吧。
2018年1月5日更新
根据客户反馈,在EMUI5.0以上又出现此等问题,想来想去,去掉
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
这个权限应该是可以的,然后试了一下,还真是这个问题。
究其原因:应该是改变角标数字需要证书的缘故吧。。。