android-zxingLibrarye如此封装打开闪光灯报错的问题解决

前段时间,以为老铁遇到了一个问题。就是在使用ZXingLibrary第三方二次封装(非常的好用,在此安利一下)的时候,想满足一个需求:那就是在启动摄像头的时候,想直接打开闪光灯,但是一直会报错,初步判断是因为闪光灯在打开的时候,摄像头还没有初始化完全导致的。

进入zxing源码,发现了相关的摄像头初始化方法:

    private void initCamera(SurfaceHolder surfaceHolder) {
        try {
            CameraManager.get().openDriver(surfaceHolder);
            camera = CameraManager.get().getCamera();
        } catch (Exception e) {
            if (callBack != null) {
                callBack.callBack(e);
            }
            return;
        }
        if (callBack != null) {
            callBack.callBack(null);
        }
        if (handler == null) {
            handler = new CaptureActivityHandler(this, decodeFormats, characterSet, viewfinderView);
        }
    }


既然找到了根源那就好办了,我注意到原来这里已经有了初始化的回调方法,只是访问权限为空,Java程序员都知道,默认访问权限为protected,但是此时要在外部类调用,只能将其访问权限改为public,此时便可以在回调方法里面完成闪光灯 的开启了,哈哈!

修改如下:



然后便可以在开启闪光灯的回调方法处调用闪光灯的开启方法啦:



由于修改十分简单,所以就不上源码了,哈哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值