1.比如点击扫描按钮时候:主动获取权限(看手机安卓系统)
case R.id.cloud_scan:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
Intent intent = new Intent(getActivity(), QRcodeActivity.class);
startActivityForResult(intent, 0);
} else {
getPermission();
}
public void getPermission() {
AndPermission.with(this)
.runtime()
.permission(Permission.CAMERA)
.onGranted(permissions -> {
Intent intent = new Intent(getActivity(), QRcodeActivity.class);
startActivityForResult(intent, 0);
})
.onDenied(permissions -> {
if (PermissionUtil.refusedPers.size() > 0) {
PermissionUtil.refusedPers.clear();
}
if (PermissionUtil.caterPers.size() > 0) {
PermissionUtil.caterPers.clear();
}
for (String per : permissions) {
if (AndPermission.hasAlwaysDeniedPermission(this, per)) {
LogUtil.i("AddMultiDevActivity", "狠狠拒绝 : " + per);
PermissionUtil.refusedPers.add(per);
} else {
LogUtil.i("AddMultiDevActivity", "欲拒还迎 : " + per);
PermissionUtil.caterPers.add(per);
}
}
if (PermissionUtil.caterPers.size() > 0) {
new RuleAlertDialog(getActivity()).builder().setCancelable(false).
setTitle(null).
setMsg("[" + getString(R.string.app_name) + "] " + getString(R.string.permission_tip) + "\r\n" + PermissionUtil.transformText(getActivity(), PermissionUtil.caterPers)).
setPositiveButton(getString(R.string.authorize_now), v1 -> {
getPermission();
}).setNegativeButton(getString(R.string.next_time_say), null).show();
} else if (PermissionUtil.refusedPers.size() > 0) {
new RuleAlertDialog(getActivity()).builder().setCancelable(false).
setTitle(null).
setMsg(getString(R.string.permission_refused_tip1) + getString(R.string.app_name) + getString(R.string.permission_refused_tip2) + "\r\n" + PermissionUtil.transformText(getActivity(), PermissionUtil.refusedPers)).
setPositiveButton(getString(R.string.go_to_settings), v1 -> {
PermissionUtil.toPermissionSetting(getActivity());
}).setNegativeButton(getString(R.string.next_time_say), null).show();
}
})
.start();
}