0

我编写了一个应用程序来扫描条形码。我尝试使用 ZXing 并且一切正常,但我会直接使用相机而不使用外部应用程序(如 Anobii),有什么方法可以做到这一点 ZXing?

4

2 回答 2

1

CaptureActivity 有方法:

public void handleDecode(Result rawResult, Bitmap barcode)

此方法决定是否调用外部或内部应用程序,您应该将以下代码注释到 switch(source){...} 以避免退出到外部应用程序。:

case NATIVE_APP_INTENT:

case PRODUCT_SEARCH_LINK:

    handleDecodeExternally(rawResult, resultHandler, barcode);
    break;
case ZXING_LINK:

    if (returnUrlTemplate == null) {
        handleDecodeInternally(rawResult, resultHandler, barcode);
    } else {
        handleDecodeExternally(rawResult, resultHandler, barcode);
    }
    break;

在你可以调用活动的下一个方法中,你应该注释所有并添加下一个代码:

private void handleDecodeInternally(Result rawResult,
        ResultHandler resultHandler, Bitmap barcode) {
    String resultString = resultHandler.getDisplayContents().toString();
    if (resultString.startsWith("some"))//define a regular expression in the qr code{
        //do something as call a new activity

    }else{
        //show error message
    }
}
于 2012-11-13T14:18:14.130 回答
1

扩展 Flavio 的答案,您需要查看com.google.zxing.client.android.camera包含用于使用 android 相机的类的包

于 2012-11-13T13:13:30.350 回答