关于QUERY_ALL_PACKAGES权限导致Google下架apk

news/2024/11/13 16:18:09/

谷歌商店被下架,原因是第三方使用了 QUERY_ALL_PACKAGES 权限;

Google在高版本上限制了此权限的使用。当然,并不是 QUERY_ALL_PACKAGES 这个权限没有了,而是被列为敏感权限,必须有充分的理由说明,才允许上架 GP,否则下架。

需删除:

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

    <!--  解决无法读取第三方应用包名问题-->
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:node="remove"/>

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
  1. 申请使用QUERY_ALL_PACKAGES权限,请说明详细用途,并在隐私政策上体现出来,如不使用请在工程里删除此权限.
  2. 修改过的包记得覆盖当前正式版,内部测试版.避免因为内部测试版的包没更新,造成再次下架,或者不过审.
  3.  AndroidManifest.xml 中,进行以下声明<queries> 元素。                                             <queries>
            <!-- 微博 -->
            <package android:name="com.sina.weibo" />
            <!-- QQ -->
            <package android:name="com.tencent.mobileqq" />
        </queries>
  4. 通过以下方式判断是否存在                                                                     context.getPackageManager().getPackageInfo(pkgName, 0);

如何打包apk呢?

 Android studio 搜索全局,搜索对应的权限,然后点击此条权限后面的按钮开关进行关闭.这样打包的时候就没有出现该权限了,不然只要重新打包就还是会自动加入这个权限.

 获取桌面所有已安装的应用:

方式一:

private List<String> getInstalledPackages(Context context) {
        List<String> installedPackageList = new ArrayList<>();
        List<PackageInfo> installedPackageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.MATCH_UNINSTALLED_PACKAGES);

        for (PackageInfo packageInfo: installedPackageInfoList) {
            installedPackageList.add(packageInfo.packageName);
        }
        return installedPackageList;
    }

方式二:

private List<String> getAllLauncherIconPackages(Context context) {
        List<String> launcherIconPackageList = new ArrayList<>();

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        //set MATCH_ALL to prevent any filtering of the results
        List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_ALL);
        for (ResolveInfo info: resolveInfos) {
            launcherIconPackageList.add(info.activityInfo.packageName);
        }

        return launcherIconPackageList;
    }

 

 


http://www.ppmy.cn/news/1546042.html

相关文章

Bert快速入门

Python 语言 BERT 入门&#xff1a;让我们一起“吃透”BERT 1. 什么是 BERT&#xff1f; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是 Google 提出的预训练语言模型&#xff0c;它通过双向编码器理解文本中的上下文信息&#xf…

Hive-testbench套件使用文档

Hive-testbench套件使用文档 hive-testbench 是hortonworks的一个开源项目,用于测试和基准测试 Apache Hive 的工具集。它提供了一系列的测试数据集和查询样例,用于评估和比较 Hive 在不同配置和环境下的性能。hive-testbench 的主要目标是模拟真实的大规模数据集和复杂查询…

SpringBoot技术下的共享汽车运营平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…

定义全局键盘监听事件,el-dialog中删除不可用

场景&#xff1a;全局的div增加了鼠标监听事件&#xff0c;而且window中添加了键盘监听事件。 window.addEventListener(keydown, this.handleKeydown) window.addEventListener(keyup, this.handleKeyup) 事件冒泡&#xff0c;导致阻止无效。 1、在 el-dialog 上同时阻止默…

ONLYOFFICE 8.2深度测评:集成PDF编辑、数据可视化与AI功能的强大办公套件

本文 一、文档编辑与PDF支持主要功能概述 二、数据可视化和增强的表格工具数据可视化功能亮点 三、AI驱动的摘要功能AI摘要功能优势 四、演示文稿的增强功能主要更新 五、协同办公能力的提升协同功能更新 六、跨平台兼容与开放文档格式跨平台与兼容性 七、安全性与隐私保护安全…

Flink转换算子

Apache Flink 是一个用于处理无界和有界数据的开源流处理框架。在 Flink 中&#xff0c;转换&#xff08;Transformation&#xff09;是数据流处理的核心组件之一&#xff0c;它们定义了如何从输入数据集生成输出数据集。以下是 Flink 中一些常见的转换算子&#xff1a; Map: 将…

【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集

命名实体识别 (NER) 是自然语言处理 (NLP) 中的一项重要任务&#xff0c;用于自动识别和分类文本中的实体&#xff0c;例如人物、位置、组织等。尽管它很重要&#xff0c;但手动注释大型数据集以进行 NER 既耗时又费钱。受本文 ( https://huggingface.co/blog/synthetic-data-s…

谐振式DCDC设计与参数计算 - 笔记汇聚

技术问题 - 笔记目录 Q1.工作频点与切换频点是什么关系&#xff1f; 当考虑电路应对外部电压波动&#xff0c;和输出负载波动&#xff0c;需要选择最低增益点外侧的&#xff0c;以及最高增益与最最低增益的的增益顶点连线的上方区域——一句话&#xff1a;感性区域&#xff1…