本文和大家分享的主要是android 相机权限适配中常见的一些坑,一起来看看吧,希望对大家
学习android有所帮助。
我们都知道,google 在 6.0 以后加强了应用权限的管理,我们也能通过标准的方法去申请权限,但是由于一些厂商的修改,在适配过程中我们会遇到各种各样的问题。在 6.0 之前,也可能会因为用户的一些设置导致我们无法获取权限。
6.0以下系统
· 打开系统相机常规来说不需要相机权限。但是如果手机 root 了,并且使用获得 root 权限 ( 未获取 root权限设置不起作用 ) 的安全管理(如 LBE ,开启主动防御后)软件管理权限,此时就会出现一些问题。比如:在我们的软件调用系统相机拍照时,这些安全管理的软件会拦截这个请求,然后根据我们的设置(第一次请求时一般弹窗询问)允许、询问或者拒绝权限,此时如果是拒绝了,我们将无法调用系统相机!而此时如果用户勾选了记住选择并拒绝,那么我们将无法调用系统相机并且在下一次请求时没有任何提示!
· 由于扫描二维码不是常规的打开系统的相机界面,所以就算是在 6.0 以下也要判断权限,一般通过如下方法判断是否拥有相机权限
/**
* 通过尝试打开相机的方式判断有无拍照权限(在 6.0 以下使用拥有 root 权限的管理软件可以管理权限)
*
*
@return
*/
public
static boolean cameraIsCanUse() {
boolean isCanUse =
true;
Camera mCamera =
null;
try {
mCamera = Camera.open();
Camera.Parameters mParameters = mCamera.getParameters();