【问题标题】:How to allow the Nexus7 use the front camera for scanning barcode when back camera is missing缺少后置摄像头时如何允许Nexus7使用前置摄像头扫描条码
【发布时间】:2013-04-10 12:56:30
【问题描述】:

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

   /** 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 android-camera barcode-scanner android-camera-intent zbar-sdk


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 既然你已经开发了条码扫描器+....任何设备是否都只有姜饼和姜饼系列以下的前置摄像头,就像有一个设备(Nexus 7)大于姜饼……只是一个随机查询的人……!!!
    • 晚于姜饼并不例外。我敢肯定姜饼上有一个只有前置摄像头的设备。应该没有带有前置摄像头的压力姜饼设备,因为它没有API支持,但我见过这样的中国非品牌设备。他们使用了一些奇怪的特殊 API,而标准 API 不起作用。
    • ohkz......听起来不错......谢谢肖恩......谢谢你这么体贴......你是一颗宝石!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2014-09-28
    相关资源
    最近更新 更多