在我的应用程序中,我让用户能够扫描条形码。现在我正在推动用户安装ZXing的扫描仪。
是否有其他可以处理意图的条形码扫描仪(支持startActivityForResult)?
在我的应用程序中,我让用户能够扫描条形码。现在我正在推动用户安装ZXing的扫描仪。
是否有其他可以处理意图的条形码扫描仪(支持startActivityForResult)?
ZBar 条码阅读器简单易用,使用方便,支持startActivityForResult
检查这个开源项目。它是使用 Zxing lib 创建的,但它重量轻,扫描二维码速度快。希望你会发现它很有用。
而且,如果你只需要扫描二维码,这个库是最好的和最简单的。
如果您的 Android 设备上安装了 Barcode Scanner,您可以让它为您扫描并返回结果,只需向其发送 Intent。例如,您可以连接一个按钮来扫描二维码,如下所示:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
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) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
还要根据以下代码更改清单文件:
<activity android:name="com.google.zxing.client.android.CaptureActivity" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="com.google.zxing.client.android.SCAN"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
有关更多选项,例如扫描产品条形码,或要求 Barcode Scanner 为您编码和显示条形码,请参阅此处:
这里有一些来自我们的测试应用程序的源代码,展示了如何使用它们: