危险权限
GroupPermissionsandroid.permission-group.CALENDAR(日历)
- android.permission.READ_CALENDAR
- android.permission.WRITE_CALENDAR
android.permission-group.CAMERA(相机)
- android.permission.CAMERA
android.permission-group.CONTACTS(联系人)
- android.permission.READ_CONTACTS
- android.permission.WRITE_CONTACTS
- android.permission.GET_ACCOUNTS
android.permission-group.LOCATION(定位)
- android.permission.ACCESS_FINE_LOCATION
- android.permission.ACCESS_COARSE_LOCATION
android.permission-group.MICROPHONE(麦克风)
- android.permission.RECORD_AUDIO
android.permission-group.PHONE(电话)
- android.permission.READ_PHONE_STATE
- android.permission.CALL_PHONE
- android.permission.READ_CALL_LOG
- android.permission.WRITE_CALL_LOG
- com.android.voicemail.permission.ADD_VOICEMAIL
- android.permission.USE_SIP
- android.permission.PROCESS_OUTGOING_CALLS
android.permission-group.SENSORS(传感器)
- android.permission.BODY_SENSORS
android.permission-group.SMS(短信)
- android.permission.SEND_SMS
- android.permission.RECEIVE_SMS
- android.permission.READ_SMS
- android.permission.RECEIVE_WAP_PUSH
- android.permission.RECEIVE_MMS
- android.permission.READ_CELL_BROADCASTS
android.permission-group.STORAGE(存储)
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.WRITE_EXTERNAL_STORAGE
代码
private void checkPermission(String permission) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this,
permission);
//判断是否有权限
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
// if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
// permission)) {
// //前一次一倍拒绝,再次调起向用户额外解释权限的情况
// Toast.makeText(this,"shouldShowRequestPermissionRationale",Toast.LENGTH_LONG).show();
// } else {
Toast.makeText(this,"没有权限,请求权限",Toast.LENGTH_LONG).show();
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{permission},
PERMISSIONS_REQUEST);
// }
}else {
Toast.makeText(this,"已有权限",Toast.LENGTH_LONG).show();
}
}else{
Toast.makeText(this,"不是6.0系统",Toast.LENGTH_LONG).show();
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSIONS_REQUEST: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this,"允许权限",Toast.LENGTH_LONG).show();
} else {
showAppSettingsDialog();
}
return;
}
}
}
/**
* 显示提示信息
*
*/
private void showAppSettingsDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("权限提示");
builder.setMessage("当前应用缺少必要权限。请点击\"设置\"-\"权限\"-打开所需权限。");
// 拒绝, 退出应用
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setPositiveButton("设置",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
startAppSettings();
}
});
builder.setCancelable(false);
builder.show();
}
/**
* 启动应用的设置
*
* @since 2.5.0
*
*/
private void startAppSettings() {
Intent intent = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
网友评论