Java 如何使用ZXing手电筒启动扫描仪?
我想用ZXing库做一个二维码扫描器。 在我的Java 如何使用ZXing手电筒启动扫描仪?,java,android,zxing,qr-code,barcode-scanner,Java,Android,Zxing,Qr Code,Barcode Scanner,我想用ZXing库做一个二维码扫描器。 在我的build.gradle中,我添加了以下代码: IntentIntegrator.initiateScan(MainActivity.this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE)
build.gradle
中,我添加了以下代码:
IntentIntegrator.initiateScan(MainActivity.this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
存储库{
mavenCentral()
马文{
url“https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
}
}
依赖关系{
编译'com.google.zxing:core:2.2'
编译'com.mobile:zxing-android-minimal:1.2。1@aar'
}
当我点击按钮时,它执行以下代码:
IntentIntegrator.initiateScan(MainActivity.this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
QR扫描器工作正常
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
现在,我想用闪光灯启动扫描仪。我该怎么做?
我已经在网上搜索过了,但是例子把我弄糊涂了
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
那么,如何使用闪光灯启动扫描仪
Camera camera =Camera.open();
Camera.Parameters p;
p = camera.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
CameraConfigurationUtils.setTorch(p,true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
使用此功能,您可以在android studio的torch上使用条形码/qrcode扫描仪。源代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
在清单文件中添加依赖项-它正在工作
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = null; // Usually back camera is at 0 position.
try {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
// TODO Turn ON Flash Light On
mScannerView.setFlash(true);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
这不起作用,产生错误“由于现有相机用户,相机“0”的火炬不可用”