我是一名新的Android开发者,尝试创建一个使用条形码的应用程序。我尝试使用ZXing库,它非常容易上手。但是现在,我需要通过条形码获取有关产品的信息。我该怎么做呢?
这里是他们提供的数据样本记录:http://www.upcdatabase.com/item/0081697521221
请仔细阅读他们的服务条款:http://www.upcdatabase.com/docs/terms.asp
要使用一维条形码,请使用PRODUCT_MODE。 如果您想要能够扫描它们所有,请不要在extras 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);
你需要通过意图调用条形码阅读器,然后用户扫描条形码(如果他们已安装条形码阅读器),条形码阅读器将数据发送到您的应用程序
以下是如何执行此操作的代码。 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
});
Source: https://developers.google.com/ml-kit/vision/barcode-scanning/code-scanner?hl=de#java