错误提示:
bash
2024-01-11 09:01:01.878 11754-11754 MicroMsg.S...ApiImplV10 com.bm.read E register app failed for wechat app signature check failed
2024-01-11 09:01:01.879 11754-11754 MicroMsg.S...ApiImplV10 com.bm.read E sendReq failed for wechat app signature check failed
运行环境:
Android 12
Pixel 3
错误分析:
开始以为是签名问题,或者debug签名被微信缓存了(原来遇到过这种情况,改了签名后不能马上支付,过一段时间又能用了)
等到第二天还是无法调起微信,
查阅资料才了解到:Android 11 版本为加强用户隐私保护引入较多变更,查询本地安装包需要添加权限,有两种添加方式:
解决方法:
1.添加可查询所有包名的权限:
XML
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<queries>
2.单独添加查询微信包名的权限:
XML
<queries>
<package android:name="com.tencent.mm"/>
</queries>
两种方案添加其中一种都能解决。
全部代码演示:
XML
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!--方案1-->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<!--方案2-->
<queries>
<package android:name="com.tencent.mm"/>
</queries>
<application
android:name=".MyApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"