九大危险权限
Android 6.0开始,Google将权限分为两类,一类是Normal Permission, 这类权限一般不涉及用户隐私,是不需要用户进行授权的,比如手机震动、访问网络等;另一类是Dangerous Permission,一般是涉及到用户隐私的,需要用户进行授权,比如读取sdcard、访问通讯录等。
有五种动态权限写法
1.管理器ActivityCompat
//判断用户是否已经给程序授权。第一个参数:context 第二个参数:具体权限名。
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
//未授权,调用 ActivityCompat.requestPermissions() 方法,向用户申请授权
//参数:1.Activity实例,2.申请的权限名数组,3.请求码,只要是唯一值即可
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{
Manifest.permission.CALL_PHONE},
1);
} else {
//已授权,直接拨打电话
call();
}
}
});
/**
* 拨打电话
*/
private void call() {
try {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
} catch (SecurityException e) {
e.printStackTrace();
}
}
@Override
public void onRequestPermissionsResult(int requestCode,