<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
加上tools是去掉某个权限
要打开的所有权限:
public static String[]permissionsREAD={
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.CALL_PHONE,
Manifest.permission.ACCESS_FINE_LOCATION
};
/**
* 丢失权限,进行弹框设置
*/
public void showMissPermissionDialog() {
if (builder == null) {
builder = new AlertDialog.Builder(LoginActivity.this);
builder.setTitle("帮助");
String msg = "当前应用缺少必要权限。
\r请点击"设置"-"权限"-打开所需权限。
\r\r最后点击两次后退按钮,即可返回。";
builder.setMessage(Html.fromHtml(msg));
//materialDialog.setMovementMethod(LinkMovementMethod.getInstance());
builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
startAppSettings();
}
});
builder.setNegativeButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog = builder.create();
alertDialog.show();
} else {
alertDialog.show();
}
}
// 启动应用的设置
public void startAppSettings() {
try {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:"+ getPackageName()));
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 判断权限集合
* permissions 权限数组
* return true-表示没有改权限 false-表示权限已开启
*/
public static boolean lacksPermissions(Context mContexts) {
for (String permission : permissionsREAD) {
if (lacksPermission(mContexts,permission)) {
return true;
}
}
return false;
}
/**
* 判断是否缺少权限
*/
private static boolean lacksPermission(Context mContexts, String permission) {
return ContextCompat.checkSelfPermission(mContexts, permission) ==
PackageManager.PERMISSION_DENIED;
}
开始调用(这里有个问题,没有检测是否勾选“不再提示”)
if (lacksPermissions(LoginActivity.this)){//读写权限没开启
ActivityCompat.requestPermissions(LoginActivity.this,permissionsREAD,0);
// showMissPermissionDialog();
}else {
//读写权限已开启
mPresenter.getLoginInfo(this);
}
下一篇升级版
网友评论