android - 如何让Nexus7在没有后置摄像头的情况下使用前置摄像头扫码

标签 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 库。 我的问题是关于设备 Asus Nexus 7。 我目前没有那个设备,但我知道它只有前置摄像头,没有后置摄像头。 如果设备只有前置摄像头而没有后置摄像头,如何让它工作? 它适用于我的代码吗? 如果我添加以下使用功能 android:name = "android.hardware.camera.front"android:required="false"

我的唯一目的是让用户扫描条形码,如果同时有前后摄像头,则应通过后置摄像头扫描,如果只有前置摄像头,则应仅通过该摄像头扫描,我怎么样继续下去吗? 欢迎所有建议。 :-D

最佳答案

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

您需要Camera.open(int) 来选择另一个相机。在 Nexus 7 上,由于只有一个摄像头,因此肯定会使用 Camera.open(0) 打开。但实际上,您需要询问所有可用的摄像头并选择您想要的摄像头。

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

(请注意,Barcode Scanner+ 也会让您在它们之间进行选择,如果您有的话。)

关于android - 如何让Nexus7在没有后置摄像头的情况下使用前置摄像头扫码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15926493/

相关文章:

Android全屏,EditText将其他 View 向上推

android - 使用 android.hardware.camera2 访问相机

java - Android:包含/重新打包引用 javax 核心类的依赖项时出错

android - 即时应用程序,立即尝试按钮不会出现在 Play 商店中

android - 从选定的 ListView 项设置上下文菜单的标题

android - 适用于 Android 的人脸识别器 opencv 类

android - android中的光测量

android - 如何启动具有 Intent 的 Activity 并在新 Activity 中传递变量?

android - Gluon Charm Down 条码扫描仪 - 未找到 Intent 处理程序

iphone - 运行扫描测试时出现 Zxing 错误