android APP 小米商店上架失败之《获取应用列表权限》

发布于:2025-07-02 ⋅ 阅读:(23) ⋅ 点赞:(0)

前言

如题 上架小米应用商店失败 理由是:获取应用列表权限

在这里插入图片描述
在这里插入图片描述

说明

每次启动app 打开登录页面 就弹出了获取应用列表权限 这样是不合规的
然而明明我在代码中没有申请该权限,为什么会弹出呢?大概是第三方库申请的权限
比如推送,地图等等

解决

        <meta-data
            android:name="do_not_need_get_installed_apps"
            android:value="true"/>

这是一种解决方案

还有应用内全局搜索以下 管控接口

PackageManager#getInstalledPackages

PackageManager#getInstalledPackagesAsUser

PackageManager#getInstalledApplications

PackageManager#getInstalledApplicationsAsUser

还有一种方法是的确用到了该权限
比如应用之间通讯 ContentProvider
这个时候需要做权限适配 但是要一步一步引导用户 而不是上来就申请该权限

manifest清单文件声明

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

是否支持动态申请权限

try {
    PermissionInfo permissionInfo =  getApplicationContext().getPackageManager().getPermissionInfo("com.android.permission.GET_INSTALLED_APPS", 0);
    if (permissionInfo != null && permissionInfo.packageName.equals("com.lbe.security.miui")) {
        //MIUI 系统支持动态申请该权限
        if (ContextCompat.checkSelfPermission(getApplicationContext(), "com.android.permission.GET_INSTALLED_APPS") != PackageManager.PERMISSION_GRANTED) {
            //没有权限,需要申请
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{"com.android.permission.GET_INSTALLED_APPS"}, 999);
        }
    }
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}

判断权限授予结果(与普通运行时权限没有区别)

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    // do something
}

网站公告

今日签到

点亮在社区的每一天
去签到