我正在尝试按照本教程构建QR码阅读器
http://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162
我设法让一切正常,除了我需要相机作为我的设备的前置摄像头而不是后置摄像头。我在教程中找不到允许我更改此内容的任何地方。我尝试了this回答,但我仍然无法让它发挥作用。
主要是我的问题是导入库。我收到以下错误。
operator is not allowed for source level below 1.7
当我将编译器设置设置为1.7时,我得到了这个
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead
我对Android并不十分熟悉,如果这可能不是一个好问题我会道歉。
那么,在我的应用中,我可以用任何方式将ZXing与前置摄像头配合使用吗?有链接吗?
非常感谢。
答案 0 :(得分:7)
源代码使用Java 7. Android不需要Java< = 6.您可以看到项目中提供的构建愉快地将Java 7字节码提供给dex并生成一个可用的应用程序。我不确定你使用的是什么工具。也许它已经老了。
您不应该复制和编译项目的代码。为什么这有必要?使用core.jar
文件。
您不需要使用前置摄像头。只需通过Intent(https://github.com/zxing/zxing/wiki/Scanning-Via-Intent)调用并将额外的SCAN_CAMERA_ID
设置为您想要的摄像机的ID - 通常为前一个摄像机的ID。
示例:
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
intent.putExtra("SCAN_CAMERA_ID", 1);
答案 1 :(得分:2)
经过不少搜索,我发现如何使用前置摄像头。 com.google.zxing.client.android.camera.CameraConfigurationManager.java
中有这段代码public void openDriver(SurfaceHolder holder) throws IOException {
Camera theCamera = camera;
if (theCamera == null) {
theCamera = Camera.open();
if (theCamera == null) {
throw new IOException();
}
camera = theCamera;
}
theCamera.setPreviewDisplay(holder);
将 Camera.open()更改为 Camera.open(1) 我工作得很好
答案 2 :(得分:2)
如果您使用IntentIntegrator,则可以使用setCameraId()
指定前置摄像头:
IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.setCameraId(1);
integrator.initiateScan();