2011-04-09 31 views
11

我已经下载了zxing 1.6并能够通过它成功运行独立条形码扫描仪。现在这个扫描仪是在另一个项目和(CaptureActivity),我有我的应用程序的不同项目称为MyProj,我想要做的所有我想要做的是在我的项目中按一下按钮在另一个项目中调用CaptureActivity,如何导入整个项目我的项目或我该怎么做才能实现这个工作。 感谢提前在Android应用程序中单击按钮时调用条形码扫描仪

+1

是有一个通用的米姆样型我可以喊出了“条形码扫描”?这个意图明确指定了zxing应用程序。 – masi 2012-05-11 10:08:55

+0

'com.google.zxing.client.android.SCAN'是扫描的通用'Intent'。只是ZXing在Android 1.0之前就已经有了,所以这是事实上的标准。它不仅选择条形码扫描仪。 – 2012-05-11 12:48:51

回答

33

我认为“复制”条码扫描仪,并在您的应用程序可能会超载您的项目包括它。你当然应该使用意图从扫描仪:

从这里:http://code.google.com/p/zxing/wiki/ScanningViaIntent

如果安装在Android设备上的条码扫描器,你可以把它扫描你,只是通过发送它的返回结果,意图。例如,你可以连接一个按钮以扫描的QR码是这样的:

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 
     } 
    } 
} 

更多的选项,比如扫描产品的条形码,或要求条码扫描器进行编码和对您显示条形码,请参阅本源文件:

http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/Intents.java

下面是从我们的测试应用中的一些来源,展示了如何使用它们:

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

IntentIntegrator

我们也开始创建一个封装了上述某些细节的类的小型库。请参阅IntentIntegrator以获取可能更简单的集成方法。特别是这将处理尚未安装条码扫描仪的情况。

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

通过URL 作为条码扫描器V2.6的,你也可以在浏览器中的URL启动应用程序。简单地创建一个超链接到http://zxing.appspot.com/scan和条码扫描仪将提供启动来处理它。用户还可以选择始终自动打开条形码扫描仪。

注:此网址并不意味着在浏览器服务的实际网页,它只是启动本机应用程序的钩子。

已知问题 用户jamesikanos报告以下“疑难杂症”:

创建launchMode“singleInstance”一TabHost活动 创建一个子活动“开始扫描”按钮(启动使用IntentIntegrator从这个按钮斑马线) onActivityResult在你的孩子的活动将立即返回为“取消” onActivityResult从未随后称为

+0

如果启动意图不设置你会得到你默认安装QR码阅读器(QR德鲁伊在我的情况下)的包或appchooser对话框,如果你有一个以上的 – Radon8472 2015-05-21 07:14:30

相关问题