Zxing 条形码相机选项

5

我想将Zing条形码扫描仪集成到我的Android应用程序中。因此,我使用了如下的Zing集成器:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.setPackage("com.google.zxing.client.android");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        startActivityForResult(intent, 0);
    }};public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

我希望在安卓平板电脑(2.2版本)上实现这个应用程序,该平板电脑有两个摄像头。当我启动此功能时,它会自动使用后置摄像头(主要)进行扫描,但根据我的应用程序需求,我需要仅使用前置摄像头进行条形码扫描。是否有类似的选项?

intent.putExtra("SCAN_MODE", "QR_CODE_MODE","FRONT_CAMERA"); 
  1. 使用这个 ZingIntegrator 函数能否启用前置摄像头?如果不能,我需要实现整个 Zing 开源代码吗?这样是否可以只用前置摄像头进行扫描?谢谢。
1个回答

2
不好意思,实际上并不能支持前置摄像头。请求前置摄像头的api直到Android 2.3才出现,而Barcode Scanner目前是1.5版本,并很快会升级到2.1版本。Camera.open()默认打开后置摄像头,并不会选择前置摄像头。
Barcode Scanner确实有一个选项可以翻转相机图像,因为我们被告知至少有一款平板电脑只有前置摄像头,并且为了让任何东西能够正常运行,你需要翻转图像。
我可以告诉你,设备上的前置摄像头普遍比后置摄像头要差得多。它的分辨率和CCD响应能力使得以这种方式进行扫描变得困难。

谢谢Sean,但我真的只需要使用前置摄像头(这是我的应用要求),我正在使用ViewSonic的“ViewPad7”平板电脑。 - chandra sekaran
你需要自己编写应用程序,然后使用新的API访问相机。一旦你获取了相机的图像数据,当然可以使用核心库进行实际扫描。你需要从头开始创建Android部分。 - Sean Owen
更新。我已经将来自Barcode Scanner+的代码进行了回溯,它将尝试在2.3+设备上打开前置摄像头。 - Sean Owen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接