如何通过条形码获取信息



我是一个新的android开发人员,我试图创建一个使用条形码的应用程序。我尝试ZXing,它很容易。但是现在我需要通过条形码获取产品信息。我该怎么做呢?

您需要使用某种web服务来查找与UPC/EAN代码相关的产品信息,例如使用AsyncTask。在谷歌上快速搜索一下,就找到了互联网UPC数据库。

以下是他们提供的数据的示例记录:http://www.upcdatabase.com/item/0081697521221

请仔细阅读他们的ToS: http://www.upcdatabase.com/docs/terms.asp

要使用一维条形码,请使用PRODUCT_MODE。如果你想扫描它们,不要在额外的scan_mode中设置任何东西。

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
//intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(intent, 0);

条形码只给你一个数字(产品编号)。你需要有一个web服务,你可以发送这个号码,以获得更多的细节。

你必须通过意图调用条形码阅读器,然后用户扫描条形码(如果他们安装了条形码阅读器),条形码阅读器将数据发送到你的应用程序

下面是如何做到这一点的代码。http://code.google.com/p/zxing/wiki/ScanningViaIntent

public void onActivityResult 所示

这些是扫描仪返回的数据

        String contents = intent.getStringExtra("SCAN_RESULT");
        String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

2023年解决方案:使用内置Android条码扫描器api:

dependencies {
  implementation 'com.google.android.gms:play-services-code-scanner:16.0.0'
}
GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
scanner
    .startScan()
    .addOnSuccessListener(
        barcode -> {
          // Task completed successfully
        })
    .addOnCanceledListener(
        () -> {
          // Task canceled
        })
    .addOnFailureListener(
        e -> {
          // Task failed with an exception
        });

来源:https://developers.google.com/ml-kit/vision/barcode-scanning/code-scanner?hl=de java

最新更新