我正在开发一个Android应用程序,我需要嵌入Zxing扫描程序。应用程序应允许用户扫描QR代码,然后存储产品的QR代码ID并从XML文件中解析它。到目前为止,我使用了简单的代码:
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage(getPackageName());
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
此代码的作用是扫描产品并将我带回我应用的上一个屏幕。我没有包括Zxing的整个库,因为我想要条码扫描器来处理它,但似乎我必须做的比我已经做的更多。
答案 0 :(得分:3)
一旦条形码扫描程序完成,您需要制作一个onActivityResult
方法来获取回调。在那里,你将处理代码字符串并随意做任何事情。
/*Here is where we come back after the Barcode Scanner is done*/
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
// contents contains whatever the code was
String contents = intent.getStringExtra("SCAN_RESULT");
// Format contains the type of code i.e. UPC, EAN, QRCode etc...
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
Log.i("TAG",format + "\t" + contents);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel. If the user presses 'back' before a code is scanned.
Log.i("TAG","Canceled");
}
}
}
此示例仅记录结果,您需要对其进行扩展,以便根据您从扫描仪返回的信息执行任何操作。
答案 1 :(得分:1)
更好的是,使用项目提供的IntentIntegrator
类。它包含了此处列出的所有详细信息,其文档已经告诉您如何将其集成到您的应用中。如果没有安装应用程序,它会为您处理一些事情。