--
为了保证Android系统的完整性以及用户的隐私性,所有的APP都运行在一个单独的沙盒中,如果想要访问沙盒之外的资源必须有明确指定是否有该权限,在Android 6.0之前,只要指明了权限系统一般都会自动授权,也有需要询问用户是否授权。但是在Android 6.0以及后对于危险权限必须用户同意后才能进行。
App Manifest
中定义所需权限,只定义所需的,不使用的不要定义。
#####1. 判断是否有相应权限
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,Manifest.permission.ACCESS_FINE_LOCATION);
返回的结果permissionCheck
如果是允许则返回PackageManager.PERMISSION_GRANTED
否则 返回PERMISSION_DENIED
,如果是允许了则直接使用。
ActivityCompat.shouldShowRequestPermissionRationale(activity, p);
返回是否需要一个我们自己定义的解释,默认返回false
当用户选择拒绝后返回true,拒绝的同是选择不再询问则返回false
ActivityCompat.requestPermissions(activity, ps, requestCode);
请求相应权限,效果如下: