小米关于调整“获取应用列表”权限&新增“调节媒体音量”权限的适配说明

“获取应用列表”权限是在Android原生 QUERY_ALL_PACKAGES 权限基础上额外的权限管理。

小米关于调整“获取应用列表”权限&新增“调节媒体音量”权限的适配说明

1、获取应用列表权限简介

“获取应用列表”权限是在Android原生 QUERY_ALL_PACKAGES 权限基础上额外的权限管理。

影响 PackageManager#getInstalledPackages和PackageManager#getInstalledApplications 两个接口返回值。

应用没适配的情况下,默认添加权限状是“仅在使用中允许”(应用不声明也会添加),即应用在前台时可以正常获取。也可以按照下面方法适配动态申请。

1.1.适配方法

清单文件声明

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

判断MIUI 是否支持动态申请权限

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
}

1.2.特殊说明:

如果不需要系统添加获取应用列表的权限,可以通过下面代码实现(同时,清单文件中不能申请更改权限)

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

注意:如果声明此meta-data,等于“获取应用列表”权限关闭!

1.3.MIUI生效版本:

MIUI 13

2、调节媒体音量权限说明

为减少部分应用擅自修改媒体音量,而不主动告知用户或获得用户许可的行为,同时尽可能避免对用户带来相应的困扰。现在单独设立“调节媒体音量”的权限,并将默认状态设置为“仅在使用中允许”。同时,“应用行为记录”功能中将会对应用修改媒体音量的行为进行记录,用户可主动调整相关的权限。您的应用如有调节媒体音量的需求,可能受到影响,建议您自行调整相关的产品策略。

MIUI 11及以下版本将不受该调整的影响。

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12538/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年11月24日 下午2:15
下一篇 2022年11月24日 下午2:17

相关推荐