1、Android M对权限管理系统进行了改版,之前我们的App需要权限,只需在manifest中申明即可,用户安装后,一切申明的权限都可来去自如的使用。但是Android M把权限管理做了加强处理,在manifest申明了,在使用到相关功能时,还需重新授权方可使用。当然,不是所有权限都需重新授权,所以就把这些需要重新授权方可使用的权限称之为运行时权限。
2、如果App的targetSdkVersion 是23也就是android 6.0的话,遇到运行时权限不去做代码处理的话,程序直接崩掉。
所以:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 区分系统
Build.VERSION.SDK_INT 手机的操作系统版本号,比如8.1对应的SDK_INT是27
3、不用特殊处理的权限,android称之为普通权限:
参考链接:http://developer.android.com/guide/topics/security/normal-permissions.html
As of API level 23, the following permissions are classified as PROTECTION_NORMAL:
android.permission.ACCESS_LOCATION_EXTR