android6.0 动态权限申请
2017-05-05 10:30
363 查看
在项目中多次遇到权限申请的问题,随着6.0的越来越普遍,对权限的申请越来越严格,学会动态申请权限也变得十分重要了。
一:在需要用到权限的地方,比如应用的初始页,sd卡操作等,添加代码
例:询问获得读写sd卡的权限
首先要在配置文件中添加权限
在用到的地方添加代码
在activity添加回调,类似OnActivityResult();
多项权限申请,这个在使用腾讯地图的定位功能是遇到过,官方文档中给的方式为:
Android 6.0系统在原有的AndroidManifest.xml声明权限的基础上新增了运行时权限动态检测,定位等权限也包含在其中。如果您的应用程序设置了 targetSdkVersion ≥ 23,则需要在调用定位功能前进行权限检查,权限检查的示例代码如下:
用户选择允许或拒绝后,会回调onRequestPermissionsResult方法:
一:在需要用到权限的地方,比如应用的初始页,sd卡操作等,添加代码
例:询问获得读写sd卡的权限
首先要在配置文件中添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
在用到的地方添加代码
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST_CODE); }
在activity添加回调,类似OnActivityResult();
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { //TODO 进行下一步操作 }
多项权限申请,这个在使用腾讯地图的定位功能是遇到过,官方文档中给的方式为:
Android 6.0系统在原有的AndroidManifest.xml声明权限的基础上新增了运行时权限动态检测,定位等权限也包含在其中。如果您的应用程序设置了 targetSdkVersion ≥ 23,则需要在调用定位功能前进行权限检查,权限检查的示例代码如下:
if (Build.VERSION.SDK_INT >= 23) { String[] permissions = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; if (checkSelfPermission(permissions[0]) != PackageManager.PERMISSION_GRANTED) { requestPermissions(permissions, 0); } }
用户选择允许或拒绝后,会回调onRequestPermissionsResult方法:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); //可在此继续其他操作。 if(grantResults[0]==PackageManager.PERMISSION_GRANTED){ } }
相关文章推荐
- Android6.0哪些权限要动态申请?
- Android6.0动态申请权限
- android6.0 动态申请权限问题总结
- android6.0动态权限申请工具类
- Android6.0动态权限申请
- 转载 Android6.0动态权限申请步骤以及需要注意的一些坑
- android6.0以上动态申请权限问题。
- Android6.0动态权限申请步骤以及需要注意的一些坑
- Android6.0动态申请权限<二>
- 随记7——Android6.0动态权限申请
- Android6.0动态权限申请步骤以及需要注意的一些坑
- Android6.0之后动态权限申请
- 使用AOP封装的权限动态申请库PermissionLibrary,简化针对Android6.0之后实现权限动态申请的复杂性
- Android6.0动态申请权限(高德地图源码)
- Android6.0动态权限申请
- Android6.0动态申请SD卡读写的权限
- android6.0(API23)以上动态申请权限
- Android6.0动态权限申请步骤以及需要注意的一些坑
- android6.0动态权限申请(其他所有权限简单介绍)
- Android6.0 动态权限申请步骤以及需要注意的一些坑