小米关于调整“获取应用列表”权限&新增“调节媒体音量”权限的适配说明
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、调节媒体音量权限说明
为减少部分应用擅网站生成App自修改媒体音量,而不主动告知用户或获得用户许可的行为,同时尽可能避免对用户带来相应的困扰。现在单独设立“调节媒体音量”的权限,并将默认状态设置为“仅在使用中允许”。同时,“应用行为记录”功能中将会对应用修改媒体音量的行为进行记录,用户可主动调整相关的权限。您的应用如有调节媒体音量的需求,可能受到影响,建议您自行调整相关的产品策略。
MIUI 11及以下版本将不受该调整的影响。
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12538/
部分内容来自网络投稿,如有侵权联系立删