在AndroidManifest中声明权限后,
如果用户
在低于6.0系统设备上安装该程序,安装时就会弹出提示框提醒,用户可以清楚知道该程序一共申请了哪些权限,从而决定是否安装此程序,如果安装了也可以在一些手机自带的手机管家中可以设置打开关闭这些权限
在6.0系统后加入了运行时权限 和苹果挺像的 用户可以在使用时进行授权。注:不是所有都是在运行时授权,普通权限系统自动授权,危险权限手动操作。
下面是Android的所有危险权限:
| |||||||||||||||||||||
访问:http://developer.android.com/reference/android/Manifest.permission.html可以查看完整权限列表 或者:http://blog.csdn.net/ufo00001/article/details/69397256 在程序运行时申请权限: 以拨打电话为例,在AndroidManifest中声明权限 <uses-permissionandroid:name="android.permission.CALL_PHONE"/> 后 if(ContextCompat.checkSelfPermission(DataSaveActivity.this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(DataSaveActivity.this,new String[]{Manifest.permission.CALL_PHONE},1);
}else{
try{
call();
}catch (SecurityException e){
e.printStackTrace();
}
} private void call(){
startActivity(new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel:520520520")));
} @Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
//super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 1:
if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
call();
}else{
Toast.makeText(this,"你拒绝了拨打电话权限",Toast.LENGTH_LONG).show();
}
break;
default:
}
} | |||||||||||||||||||||