Android6.0及更高版本动态获取权限

Android 6.0及其更高版本中,即API>=23之后的版本中某些受保护的权限无法直接通过Manifest来直接默认获取,只能通过动态获取,这样做的好处是显而易见的,可以让权限用在该用的地方。

动态获取权限要做的是这几件事情:

  • 判断当前的系统版本,API版本的多少来确定使用哪种获取权限的方法,如果API小于23那么就不需要发起权限获取操作。
  • 如果API大于或等于23那么就发起权限获取,ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA},1); this 为当前的操作主体Activity,string数组内为所请求的权限,可见可以同时获取多个权限,最后一位是请求码requestcode。
  • 最后一步是确定回调函数onRequestPermissionsResult(int requestCode,String[] Permissions,int[] grantResult) 其中grantResult数组的第一位若等于PackageManager.PERMISSION_GRANTED那么说明权限被授予否则权限授予失败。
阅读更多