如何在后置摄像头丢失时让Nexus7使用前置摄像头扫描条码

时间:2013-04-10 12:56:31

标签: android android-camera barcode-scanner android-camera-intent zbar-sdk

我需要问一个与条形码扫描有关的问题,我正在使用一个扫描条形码的应用程序,并搜索结果的网页。 现在这是我创建相机对象实例的方法

   /** 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

1 个答案:

答案 0 :(得分:3)

在Android 2.3之前,没有用于访问前置摄像头的API,所有设备摄像头都是后置摄像头。您正在使用的API调用是原始调用,并且仍将仅打开后置摄像头,以实现兼容性。在Nexus 7上,您将获得null

您需要Camera.open(int)才能选择其他相机。在Nexus 7上只有一台摄像机,它肯定会以Camera.open(0)打开。但实际上你需要查询所有可用的摄像头并选择你想要的摄像头。

source code from zxing /条码扫描器显示它如何打开后置摄像头,除非没有可用的,在这种情况下打开前置摄像头。

(请注意,Barcode Scanner+也允许您在它们之间进行选择。)