0

在我的应用程序中,我让用户能够扫描条形码。现在我正在推动用户安装ZXing的扫描仪。

是否有其他可以处理意图的条形码扫描仪(支持startActivityForResult)?

4

3 回答 3

1

ZBar 条码阅读器简单易用,使用方便,支持startActivityForResult

于 2013-09-04T08:35:21.593 回答
1

检查这个开源项目。它是使用 Zxing lib 创建的,但它重量轻,扫描二维码速度快。希望你会发现它很有用。

而且,如果你只需要扫描二维码,这个库是最好的和最简单的。

于 2013-09-04T08:52:17.910 回答
0

如果您的 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 为您编码和显示条形码,请参阅此处

这里一些来自我们的测试应用程序的源代码,展示了如何使用它们:

于 2013-09-04T08:45:15.253 回答