zhelidaa
zhelidaa
  • 发布:2015-11-06 10:04
  • 更新:2017-07-21 15:02
  • 阅读:5531

扫码使用拍照权限问题

分类:MUI
mui

在使用barcode扫码时,手机安全软件一般会提示是否启动拍照权限,一旦选择了禁止,那么再次扫码时就不会提示是否启动拍照权限,我想问问怎样让软件每次打开时都提示是否开启权限

2015-11-06 10:04 负责人:无 分享
已邀请:
lam

lam

function checkCamera() {
//var cc = plus.navigator.checkPermission('CAMERA');
//console.log("cc:"+cc);
var cameraFlag = true;
if(plus.os.name == "iOS") {
var AVCaptureDevice = plus.ios.importClass("AVCaptureDevice");
var Status = AVCaptureDevice.authorizationStatusForMediaType("vide");
if(3 != Status) {
alert('请在设置中允许使用相机');
cameraFlag = false;
} else {
console.log("已开启")
}
} else {
var mCamera = null;
try {
Camera = plus.android.importClass("android.hardware.Camera");
console.log(Camera.open())
mCamera = Camera.open();
plus.android.invoke(mCamera, "setParameters", mCamera.getParameters());
console.log("m:" + mCamera.getParameters())
} catch(e) {
console.log(e + "====" + false);
cameraFlag = false;
//alert('请在设置中允许使用相机');
//return;
} finally {
console.log("finally")
if(mCamera != null) {
//mCamera.release();

                        plus.android.invoke(mCamera,"release");  
                        mCamera = null;  
                        console.log("release:"+mCamera);  
                    }  
                }  
                console.log(true);  
            }  
            if(!cameraFlag){  
                alert('请在设置中允许使用相机');  
                return;  
            }  
        }
  • qq58485273

    谢谢,亲测可用!要用的小伙伴记得把注释掉的release()方法打开。

    2017-07-17 17:04

  • 半晴雨滴

    回复 qq58485273: 还是不行呀,用户第一次打开扫一扫时系统询问用户是否授权开启相机,这个方法没用

    2019-04-26 17:35

qq58485273

qq58485273

解决了吗?我找了两天了,也没找到怎么实现。
参考绑定onmarked回调函数 绑定了onerror回调函数,但是一直没反应

qq58485273

qq58485273

您好。这个实现方法在IOS系统上有个小问题。
IOS的机制是在调用到某个模块时,才会将权限开关加载到设置页中。
比如相机权限,在程序没有调用摄像头之前,该应用在系统设置页里面是没有相机权限开关的。
而现在我在调用摄像头之前先判断有没有相机权限,没有就不打开相机,直接跳转到设置页让用户设置打开相机权限,但是由于程序在此时还没调用过摄像头,所以设置页中页没有相机的权限开关,用户也就没法打开相机的权限开关了。
请问您是怎么处理这个情况的?
目前我是在IOS上先判断是否是第一次调用相机,如果是直接调用,不理会有没有打开相机权限。如果不是第一次才先判断有没有权限,然后再调用摄像头。

(下图是美团安装后没打开过时,设置页的情况。没有相机,位置等权限开关)

  • lam

    权限你不是一开始就给他设置吗?没就用官方提供的权限检查先判断

    2017-07-21 16:41

该问题目前已经被锁定, 无法添加新回复