中兴二维码/条码扫描

Posted

技术标签:

【中文标题】中兴二维码/条码扫描【英文标题】:ZXing QR Code/Barcode scanning 【发布时间】:2014-04-25 05:02:38 【问题描述】:

我曾尝试通过触发 Intent 将 QRCode 扫描仪集成到我的应用程序中 我使用的代码如下

            Intent intent = new Intent("com.google.zxing.client.android.SCAN");

            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) 
    // Handle successful scan
    String capturedQrValue =
    intent.getStringExtra("SCAN_RESULT");
    Log.i("info", "captureQrValue :" + capturedQrValue);
    String format =
    intent.getStringExtra("SCAN_RESULT_FORMAT");
    Toast.makeText(
    One.this,
    "Scan Result:" + capturedQrValue + " scan format :"+ format,Toast.LENGTH_SHORT).show();
     else if (resultCode == RESULT_CANCELED) 
    // Handle cancel
    
     else 
    

即使我遇到的问题是,如果没有安装 ZXing 示例条形码扫描仪,它就无法工作。

编辑:

是否可以将条形码扫描仪作为我的应用程序的一部分。对下载条形码扫描仪不感兴趣。

还有没有ZXing二维码扫描的摄像头或者安卓版本规范???

不工作意味着 - 它要求从 google play 安装条形码扫描仪,我需要避免。

【问题讨论】:

所以,当你说“不工作”时,你真的应该指定什么。 查询已更新,我希望有足够的解释 【参考方案1】:

我更喜欢/建议使用 Zbar 而不是 zxing。与 zbar 相比,zxing 需要时间来读取二维码,而且您可能需要安装自己的 (zxing) 应用程序 - Barcode Scanner 进行扫描。我都试过了,我发现 zbar 更好。从here下载zbar源代码。解压缩文件并将 ZBarScannerLibrary 作为库项目导入。将此库添加到您的 android 应用程序。还要将此添加到您的 scanButton `

if (check_if_camera_is_available) 

    Intent intent = new Intent(MyWallet.this, ZBarScannerActivity.class);
    startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
 
else 


    Toast.makeText(MyWallet.this, "Camera Unavailable", Toast.LENGTH_SHORT).show();

`

还要在您的活动中声明这些变量,否则您可能会遇到错误

private static final int ZBAR_SCANNER_REQUEST = 0;
private static final int ZBAR_QR_SCANNER_REQUEST = 1;

最后在你的清单文件中添加这个

<activity android:name="com.dm.zbar.android.scanner.ZBarScannerActivity"
              android:screenOrientation="landscape"
              android:label="@string/app_name" />

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>

希望这会有所帮助:-)

【讨论】:

这个项目将不再维护。 This 会是更好的建议【参考方案2】:

Zxing 是开源的,您可以将其包含在您的应用程序中(但此库的创建者不鼓励在 stackoveflow 问题中阅读这种行为)

虽然你必须尊重ZXing的Apache license 2.0。

很简单:

    在您的项目中包含该库 更正problem in android while generating R 的一些代码 zxing manifest 中的application 必须是这样的&lt;application/&gt;

    启动意图或创建您自己的public class ScanActivity extends CaptureActivity 并管理结果

    @Override
    public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor)
        String barcodeRead = rawResult.getText();
    
        if(!MyValidator.isMyBarcode(barcodeRead))return;
    
        Intent viewDetails = new Intent(this, DetailActivity.class);
        viewDetails.putExtra(DetailActivity.EXTRA_BARCODE, barcodeRead);
        viewDetails.putExtra(DetailActivity.EXTRA_SESSION, "some extras");
        startActivity(viewDetails);
    
        finish();
    
    

最后但并非最不重要的一点是在您的应用中为这个库添加一些功劳!!

【讨论】:

明确一点:我鼓励人们重用任何开源代码。但必须以尊重法律的方式进行。这包括尊重商标和版权。当人们复制并粘贴整个应用程序时,问题就来了。只是不要那样做。

以上是关于中兴二维码/条码扫描的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android相机扫描二维码

android中zxing扫描条码没有声音

基于Zxing的二维码的二维码扫描之横屏扫描

html5怎么扫描二维码

php代码如何实现扫描二维码获取扫描者的信息

怎样用code128条码制作器获得电能表二维码