Android 6.0运行权限添加
来源:互联网 发布:adobe flash for mac 编辑:程序博客网 时间:2024/06/03 22:06
为6.0系统添加高危权限 代码:
/** * Activity 6.0运行权限设置 * @param context * @param activity * @param permission 权限 Manifest.permission.XXX * @param requestCode 请求代码匹配结果 */ public static boolean setPermission(Context context, Activity activity, String permission, int requestCode) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(context, permission) != PackageManager .PERMISSION_GRANTED) { ActivityCompat.requestPermissions(activity, new String[]{permission},requestCode); return true; } } return false; }
使用此方法 返回boolean值: false代表权限已申请过或者版本低于23,那就直接写业务逻辑
if (!setPermission(context, XXX.this, Manifest.permission.READ_EXTERNAL_STORAGE, CAMERA)) { //TODO 权限已申请 直接写业务逻辑 }
返回boolean值:true代表权限未被申请,在回调方法onRequestPermissionsResult进行处理:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == CAMERA) { //CAMERA 请求代码匹配结果 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { //TODO 写权限通过后的业务逻辑 } else { ToastUtils.showToast("权限被拒绝,无法使用此功能", Toast.LENGTH_SHORT); } return; } }
权限到这就处理完了嘛.以前以为是,直到我在Fragment中使用,发现一个坑onRequestPermissionsResult回调接受不到.what?网上搜了一下,完美解决:
/** * Fragment 6.0运行权限设置 * @param context * @param fragment * @param permission 权限 Manifest.permission.XXX * @param requestCode 请求代码匹配结果 * @return */ public static boolean setPermission(Context context, Fragment fragment, String permission, int requestCode) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(context, permission) != PackageManager .PERMISSION_GRANTED) { fragment.requestPermissions( new String[]{permission}, requestCode); return true; } } return false; }
原来在activity中使用ActivityCompat.requestPermissions(),而fragment只能用fragment.this.requestPermissions().
0 0
- Android 6.0运行权限添加
- Android 6.0运行权限
- Android 6.0运行时权限
- Android 6.0运行时权限
- Android 6.0运行时权限
- Android 6.0+ 运行时权限
- Android 6.0运行时权限
- Android 6.0运行时权限
- android 6.0运行时权限
- android 6.0运行时权限
- Android 6.0 运行时权限
- Android 6.0运行时权限
- Android 6.0运行时权限
- Android 6.0 运行时权限
- Android 6.0运行时权限
- Android 6.0运行时权限
- Android 6.0 运行时权限
- Android 6.0运行时权限
- java 内部类
- 关于浅拷贝与深拷贝
- 浅入浅出 Android 安全 (三) Android 本地用户空间层安全
- 傅里叶分析——三角函数
- XCode调试技巧
- Android 6.0运行权限添加
- 网站架构设计发展路径学习
- HDU2084 数塔
- Unity5-ABSystem(二):AssetBundle导出
- JAVA字符串格式化-String.format()的使用
- JS之prototype this
- lvs为何不能完全替代DNS轮询
- SQL join
- CAD控件:界面控制说明和方法