我需要问一个与条形码扫描有关的问题,我正在使用一个扫描条形码的应用程序,并搜索结果的网页。 现在这是我创建相机对象实例的方法
/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance() {
Camera c = null;
try {
c = Camera.open();
} catch (Exception e) {
}
return c;
}
扫描我正在使用Zbar库。 我的问题是关于设备华硕Nexus 7。 我目前没有这个设备,但我知道它只有前置摄像头,没有后置摄像头。 如果设备只有前置摄像头而没有后置摄像头,如何使其工作? 我的代码可以正常工作吗? 如果我添加以下用途 - 功能android:name =“android.hardware.camera.front”android:required =“false”
我唯一的目的是允许用户扫描条形码,如果有前后摄像头它应该通过后置摄像头扫描,如果它只有前置摄像头,它应该仅通过该摄像头扫描,我是怎么回事继续进行? 欢迎所有建议。 :-D
答案 0 :(得分:3)
在Android 2.3之前,没有用于访问前置摄像头的API,所有设备摄像头都是后置摄像头。您正在使用的API调用是原始调用,并且仍将仅打开后置摄像头,以实现兼容性。在Nexus 7上,您将获得null
。
您需要Camera.open(int)
才能选择其他相机。在Nexus 7上只有一台摄像机,它肯定会以Camera.open(0)
打开。但实际上你需要查询所有可用的摄像头并选择你想要的摄像头。
source code from zxing /条码扫描器显示它如何打开后置摄像头,除非没有可用的,在这种情况下打开前置摄像头。
(请注意,Barcode Scanner+也允许您在它们之间进行选择。)