在安卓6.0后我们获取一些手机的权限不仅需要在AndroidMainfist中配置,还需要我们在代码中动态的去获取一下相应的权限。在软件开发版本没有适配6.0的时候运行在安卓6.0的手机上是不会崩的,因为我们开发对应的版本没有适配6.0,它仍然只需要在配置文件中添加权限即可;但是当版本适配到了6.0那么我们就需要到代码中获取权限,运行在低于6.0的手机版本时不执行代码添加权限的方法;只会在大于或等于6.0时才会调用; 那么总结一下那些权限在6.0后需要在代码中动态的申请呢? 1、读写的权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST_CODE); }2、拨打电话的权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE); }3、手机相机的权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1);}4、定位的权限
Manifest.permission.access_COARSE_LOCATIONManifest.permission.ACCESS_FINE_LOCATION请求的方式就是判断当前的版本是否是在安卓6.0以后,再判断是否有相应的权限,如果没有相应的权限那么就动态申请权限。这个套路也就是这样,那么到底有多少的权限我们是需要在代码中动态的添加的:
身体传感器 日历 摄像头 通讯录 地理位置 麦克风 电话 短信 存储空间 大致也就是这些了。
新闻热点
疑难解答