Android动态权限学习笔记
很多时候,我们很好奇android.os.Build.VERSION.SDK_INT和Android系统之间的关系。
比如Android6.0之后要动态申请权限,就要判断Android系统版本。
然后我们会经常看到类似的代码
if(Build.VERSION.SDK_INT>=23){
//检查是否已经给了权限
int checkpermission= ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.ACCESS_FINE_LOCATION);
if(checkpermission!=PackageManager.PERMISSION_GRANTED){//没有给权限
Log.e(“permission”,“动态申请”);
//参数分别是当前活动,权限字符串数组,requestcode
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
}
很多人都很奇怪为什么Build.VERSION.SDK_INT>=23,系统就是6.0以上的呢?
因为每一个Build.VERSION.SDK_INT对应的都是不同的系统版本,比如13对应的是4.0,而23对应的是6.0,所以Build.VERSION.SDK_INT>=23就是6.0以上的系统版本。
我们要先判断用户手机是不是6.0,当超过6.0了再请求权限就可以了,不然不申请的话,一些被谷歌列为危险权限的东西会报错。