搜索
开发文档
应用开发
快应用开发
小游戏开发
开发文档/应用开发/系统适配/权限管理/权限用途用户告知适配说明
权限用途用户告知适配说明更新时间: 2024-09-25 20:32:00

一、系统权限描述

MIUI11中,应政府对手机软件权限获取的合规要求,MIUI将支持三方应用通过向系统接口传输参数的方式,显示获取运行时权限的目的及用途,具体方案如下:

应用申请运行时权限时,可通过接口传输权限用途及描述,满足政府对于软件获取权限的合规要求,同时通过有效行为描述增加用户授权的可能性。

二、接口开放标准

1、填写权限使用申请

  • 仅支持通过小米应用商店上架的应用申请使用接口,申请时请按以下内容填写权限申请资料:
权限名称是否申请权限用途及说明
(请提供简体中文及英语,中文字符不超过18个汉字)
Manifest.permission.READ_CONTACTS
Manifest.permission.WRITE_CONTACTS
Manifest.permission.GET_ACCOUNTS
Manifest.permission.WRITE_CALENDAR
Manifest.permission.SEND_SMS
Manifest.permission.RECEIVE_SMS
Manifest.permission.READ_SMS
Manifest.permission.RECEIVE_MMS
Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.WRITE_EXTERNAL_STORAGE
Manifest.permission.ACCESS_FINE_LOCATION
Manifest.permission.ACCESS_COARSE_LOCATION
Manifest.permission.READ_CALL_LOG
Manifest.permission.WRITE_CALL_LOG
Manifest.permission.PROCESS_OUTGOING_CALLS
Manifest.permission.READ_PHONE_STATE
Manifest.permission.READ_PHONE_NUMBERS
Manifest.permission.CALL_PHONE
Manifest.permission.ADD_VOICEMAIL
Manifest.permission.USE_SIP
Manifest.permission.ANSWER_PHONE_CALLS
Manifest.permission.RECORD_AUDIO
Manifest.permission.ACTIVITY_RECOGNITION
Manifest.permission.CAMERA
Manifest.permission.BODY_SENSORS
  • 重要提示:以下权限,在MIUI 11 3.12 的开发版后将无法获取:
Manifest.permission.READ_PHONE_STATE

Manifest.permission.READ_PHONE_NUMBERS

Manifest.permission.CALL_PHONE Manifest.permission.ANSWER_PHONE_CALLS

2、发送权限申请至审核邮箱

填写权限使用申请后,请按如下格式将内容发送至miui-security-open@xiaomi.com

邮件主题:申请使用系统权限描述

【申请应用】填写应用名称

【应用包名】com.xxxx.xxxx

【公司主体】填写公司主体名称

【相关负责人】填写相关负责人

【联系方式】填写相关负责人联系方式

【权限申请目录】粘贴权限使用申请内容

3、等待审核

发送邮件后,请等待反馈,反馈时间在1-3个工作日内,若审核通过,将在反馈中提供调用方法并开设白名单。

4、技术接入

确定开放白名单后,请按以下方式接入:

申请示例:

private String[] permissions = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.ACCESS_FINE_LOCATION
};



private String[] permissionDescs = new String[] {
"存储用户精修美图",
"拍摄抖音短视频",
"游戏中进行语音交流",
"获取地理位置来提供导航功能"
};


private List<String> mPermissionList = new ArrayList<>();
private static final int PERMISSION_REQUEST = 1;

//开始申请
for (int i = 0; i < permissions.length; i++) {
if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
mPermissionList.add(permissions[i]);
mPermissionList.add(permissionDescs[i]);
}
}
if (mPermissionList.isEmpty()) {
//业务操作
} else {
String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);
ActivityCompat.requestPermissions(MainActivity.this, permissions, PERMISSION_REQUEST);
}


//申请回调
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST) {
//业务操作
}
}

以上是最新推荐的申请权限的方式,只需要在申请的权限数组中加上对应的权限描述即可。

5、注意事项

权限及传入的权限描述要一一对应,权限描述不能传入null,若不需要描述,可传入空字符串:" "。

上一篇:
下一篇: