单个权限申请比较简单:
//判断当前版本是否大于M
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//判断当前Activity是否获得了该权限
if (ContextCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//没有授权,判断权限申请是否曾经被拒绝过
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(activity, "你曾经拒绝过此权限,需要重新获取", Toast.LENGTH_SHORT).show();
//进行权限请求
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_REQ_CODE);
} else {
//进行权限请求
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
EXTERNAL_STORAGE_REQ_CODE);
}
可是多个权限申请要怎么写?
判断是否获取改权限的Permission貌似一次只能判断一个,如果在这个地方添加其他权限的判断,系统只会判断一次,然后给出所有权限判断的结果,,,所以,多个权限申请问题该怎么做?
阿神2017-04-17 17:22:04
複数の権限とは、アプリケーション配列に複数の新しい String[]{Permission A, Permission B} を入力することを意味し、1 つが拒否された場合はなしと判断されます。したがって、コールバックの場所で自分で処理する必要があります
リーリー権限も String[] 配列を通じて 1 つずつ判断されます。