Android 11判断应用已安装坑点


一个很久没有大更新的app,接用户反馈购买课程微信支付不了,通过app、后端的日志查看,确实有多次选择微信下单却未支付的操作。后来在一同事手机上复现,(app提示微信未安装,事实上已经安装)经过很久的折腾,得到结论。app调用的 wxApi.isWXAppInstalled() 来判断微信是否安装。最终在腾讯文档中找到了说明,原因是Android 应用可见性,要求做适配。

Android 11 wxApi.isWXAppInstalled() 返回false


解决办法

以下方法任意一种都可以解决问题

1、在清单文件的添加queries标签

manifest节点添加如下内容:

   <queries>
         <package android:name="com.tencent.mm" />
   </queries>

具体位置如下所示

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="...">
    <queries>
       <package android:name="com.tencent.mm" />
   </queries>
   .....
</manifest>

由于是新的标签,因此需要升级开发工具,否则会出现编译错误:

1)Android Studio 需要升级至 3.3 及以上,建议升级至 4.0 及以上版本;

2)Android SDK Build-Tools 需要升级至 30 及以上版本;

3)com.android.tools.build:gradle 需要升级至 3.6.0 版本,建议升级至最新的 3.6.4 版本。

2、增加权限

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

3、app的targetSdkVersion 改为29

这种方法也能解决上面问题,但实际上也留下了一个坑,时间一久,自己或其他小伙伴把apilevel 升上去,再次入坑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值