【发布时间】:2020-06-23 11:44:07
【问题描述】:
来自这个问题,here
我目前正在开发一个需要通过设备的内置摄像头扫描二维码的应用程序,使用以下库:
implementation 'com.google.zxing:core:3.3.3'
implementation 'com.journeyapps:zxing-android-embedded:3.5.0'
我用来扫描二维码的逻辑如下,取自tutorial:
IntentIntegrator integrator = new IntentIntegrator(QR_Activity.this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("Scan");
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(false);
integrator.initiateScan();
此代码正在使用View.OnClickListener() 的Button 内部调用,结果由onActivityResult 处理
每当我运行此代码并从扫描仪返回结果时,扫描仪什么都不返回,并且将异常写入控制台,即Access denied finding property "camera.hal1.packagelist"。已成功授予应用程序权限。有问题的权限是CAMERA 和INTERNET 权限。
有问题的测试设备是 LG V30+ ThinQ 智能手机。
有没有办法解决这个问题?或者这个问题在所有具有双摄像头设置的智能手机上普遍存在,因此“无法修复”?
更新
使用以下代码进行简单测试:
/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}
(代码取自上述帖子中的answer。)
以上代码产生与上面显示的IntentIntegrator 代码相同的结果,并引发与之前相同的Access denied finding property "camera.hal1.packagelist" 错误。
【问题讨论】:
标签: java android android-camera qr-code android-camera2