IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 关于QUERY_ALL_PACKAGES权限导致Google下架apk -> 正文阅读

[移动开发]关于QUERY_ALL_PACKAGES权限导致Google下架apk

突然收到提示,因为应用使用QUERY_ALL_PACKAGES权限,导致apk上线不了Google,查了一下是2022年7月后Google在高版本上限制了此权限的使用。当然,并不是 QUERY_ALL_PACKAGES 这个权限没有了,而是被列为敏感权限,必须有充分的理由说明,才允许上架 GP,否则还是被一票否决。其实说白了就是大路已经被封了,留了条小路,但是小路只能看,不能走。
在这里插入图片描述
但是检查配置清单文件我们是没有添加此权限的,反编译apk却又存在此权限,或者不用反编译,可以直接在AndroidStudio中查看最后合并的Androidmanifest.xml文件,位于 /app/build/intermediates/merged_manifests/debug/AndroidManifest.xml目录下
在这里插入图片描述
可以看到最后生成的xml文件确实包含此权限
在这里插入图片描述
项目中最后合成的AndroidManifest.xml 中内容的来源:

  • 项目自身 AndroidManifest.xml
  • 子 module 中的 AndroidManifest.xml
  • 依赖中的AndroidManifest.xml
  • gradle 中的代码修改

解决方案

通过查找发现,Sharesdk会生成QUERY_ALL_PACKAGES权限。
在这里插入图片描述
根据shareSDK官方推荐配置删除权限并配置对应需要查找的包名的queries,用于查找是否存在该应用
在这里插入图片描述
在AndroidManifest.xml中添加如下

	<!--由于我的应用最后生成的xml文件里有微信的判断了,所以此处只添加了qq是否安装的判断-->
	<queries>
        <package android:name="com.tencent.mobileqq"/>
        <package android:name="想要判断的应用包名"/>
    </queries>

经过上述配置,最后生成的xml文件里还是存在QUERY_ALL_PACKAGES权限,在项目build.gradle文件里添加如下代码,删除对应权限即可

//删除QUERY_ALL_PACKAGES权限
project.afterEvaluate {
    project.android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.processResources.doFirst { pm->
                String manifestPath = output.processResources.manifestFile;
                def manifestContent = file(manifestPath).getText()
                // 需要删除的权限
                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>', '')
                file(manifestPath).write(manifestContent)
            }
        }
    }
}

参考文档:
https://juejin.cn/post/7114487250510938125
https://blog.csdn.net/Gdeer/article/details/88840980
https://blog.csdn.net/dhl91604/article/details/105969513/

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:17:25  更:2022-08-19 19:20:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 4:46:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码