我是一个新的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