关于android6.0权限适配6.0系统以下的问题总结(二维码扫描)
2016-10-19 16:50
531 查看
![](http://upload-images.jianshu.io/upload_images/5637205-5afd370499eee2d3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
本人最新公众号《Android百科全书》,汇集了各个公众号的优秀文章,进行分类整理,让大家能够更方便的查阅,希望大家多多支持,来个关注奥。
adnroid6.0系统的权限问题在一般情况下可以直接申请,但在某些情况下,会出现6.0以下系统调用权限申请时,系统给出的判断直接是申请成功,此时,我们就需要一些特殊的处理,来适配6.0以下的系统,本文讲述的就是本人开发二维码扫描界面出现的一些问题。
当6.0系统调用照相机时,我们知道,首先应该去手动申请权限,这个权限申请在6.0以下是不需要操作的,系统默认申请,但是google为了android系统的安全,在6.0系统上加了这么一个模式,就是只要涉及危险权限,必须手动申请。但是在一些6.0以下的系统,你申请权限时,他在你没有点击确认或者拒绝时,直接有一个判断,判断你申请成功,此时,我们点击拒绝,就会出现一些bug,比如二维码扫描界面无法正常工作,我们要做的操作就是在这里。
代码块
申请权限代码(本人在这里使用的是权限工具包 AndroidAcp,也可以自己书写)Acp.getInstance(getActivity()) .request(new AcpOptions.Builder() .setPermissions(Manifest.permission.CAMERA) .build(), new AcpListener() { @Override public void onGranted() { Intent intent = new Intent(getContext(), MyCaptureActivity.class); startActivityForResult(intent, REQUEST_CODE); } @Override public void onDenied(List<String> permissions) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("照相权限被禁止,无法使用该功能!"); builder.setPositiveButton("知道了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { getActivity().finish(); dialog.dismiss(); // ToastUtils.showToastShort(String.valueOf((int) rating)); } }); builder.create().show(); } });
这里是正常的写法,就是对能正常走过权限判断的版本,接下我们要做的就是在使用照相机的界面进行修改,在那里处理直接通过的情况,代码如下:
代码块
//界面上使用 try { checkCameraPermissions(); } catch (IOException e) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("照相权限被禁止,无法使用该功能!"); builder.setPositiveButton("知道了", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { getActivity().finish(); dialog.dismiss(); } }); builder.create().show(); } /** * 检查相机权限,如果不能打开相机则抛出异常 */ public static void checkCameraPermissions() throws IOException { try { Camera camera = Camera.open(); if (camera != null) { camera.release(); camera = null; } } catch (Exception e) { throw new IOException(); } }
以上就是我对6.0权限问题处理的总结,如果你有更好的方式,一起来交流下。
本博客不定时推送,总结一些本人开发时遇到的一些问题,如果你喜欢,关注我吧。( ⊙ o ⊙ )( ⊙ o ⊙ )( ⊙ o ⊙ )
( ^_^ )/~~拜拜
相关文章推荐
- 关于Android6.0以上系统的权限问题
- 国内第三方Rom在Android6.0以下系统的权限适配
- 关于Android6.0权限适配的问题
- 关于小米6.0以上系统手机动态获取权限问题
- 关于Android6.0、7.0、8.0系统对于申请权限的授权问题
- 关于Android6.0系统某些时候无法获取到相关权限的问题
- 关于Oracle中sysoper这个系统权限的问题
- 关于系统中权限和角色设计的问题
- 关于Android4.0及以下系统版本使用PopupWindow.dismiss()时内部的Drawable透明的问题
- 摄像头权限被拒绝导致程序崩溃的问题(6.0以下版本)
- 关于AndroidManifest.xml开发中使用系统权限报错的问题
- Android6.0极其以上系统获取Dangerous系统权限问题及其解决方案
- 关于Linux系统中用户权限问题
- 关于android 系统选图crash问题的一些问题总结
- 血的教训 关于6.0的读取权限问题
- 关于Android设备root权限和系统签名权限的区别问题
- 【总结】关于tomcat+6.0中使用连接池的问题
- 关于Linux系统中用户权限问题
- 提示系统启动关于误更改/var下诺干的权限问题,导致系统启动提示The System is running in low-graphics mode问题解决 By ACReaper
- 关于android开发中使用系统权限报错的问题