中兴二维码/条码扫描
Posted
技术标签:
【中文标题】中兴二维码/条码扫描【英文标题】:ZXing QR Code/Barcode scanning 【发布时间】:2014-04-25 05:02:38 【问题描述】:我曾尝试通过触发 Intent 将 QRCode 扫描仪集成到我的应用程序中 我使用的代码如下
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
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)
// Handle successful scan
String capturedQrValue =
intent.getStringExtra("SCAN_RESULT");
Log.i("info", "captureQrValue :" + capturedQrValue);
String format =
intent.getStringExtra("SCAN_RESULT_FORMAT");
Toast.makeText(
One.this,
"Scan Result:" + capturedQrValue + " scan format :"+ format,Toast.LENGTH_SHORT).show();
else if (resultCode == RESULT_CANCELED)
// Handle cancel
else
即使我遇到的问题是,如果没有安装 ZXing 示例条形码扫描仪,它就无法工作。
编辑:
是否可以将条形码扫描仪作为我的应用程序的一部分。对下载条形码扫描仪不感兴趣。
还有没有ZXing二维码扫描的摄像头或者安卓版本规范???
不工作意味着 - 它要求从 google play 安装条形码扫描仪,我需要避免。
【问题讨论】:
所以,当你说“不工作”时,你真的应该指定什么。 查询已更新,我希望有足够的解释 【参考方案1】:我更喜欢/建议使用 Zbar 而不是 zxing。与 zbar 相比,zxing 需要时间来读取二维码,而且您可能需要安装自己的 (zxing) 应用程序 - Barcode Scanner 进行扫描。我都试过了,我发现 zbar 更好。从here下载zbar源代码。解压缩文件并将 ZBarScannerLibrary 作为库项目导入。将此库添加到您的 android 应用程序。还要将此添加到您的 scanButton `
if (check_if_camera_is_available)
Intent intent = new Intent(MyWallet.this, ZBarScannerActivity.class);
startActivityForResult(intent, ZBAR_SCANNER_REQUEST);
else
Toast.makeText(MyWallet.this, "Camera Unavailable", Toast.LENGTH_SHORT).show();
`
还要在您的活动中声明这些变量,否则您可能会遇到错误
private static final int ZBAR_SCANNER_REQUEST = 0;
private static final int ZBAR_QR_SCANNER_REQUEST = 1;
最后在你的清单文件中添加这个
<activity android:name="com.dm.zbar.android.scanner.ZBarScannerActivity"
android:screenOrientation="landscape"
android:label="@string/app_name" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
希望这会有所帮助:-)
【讨论】:
这个项目将不再维护。 This 会是更好的建议【参考方案2】:Zxing 是开源的,您可以将其包含在您的应用程序中(但此库的创建者不鼓励在 stackoveflow 问题中阅读这种行为)。
虽然你必须尊重ZXing的Apache license 2.0。
很简单:
-
在您的项目中包含该库
更正problem in android while generating
R
的一些代码
zxing manifest 中的application
必须是这样的<application/>
启动意图或创建您自己的public class ScanActivity extends CaptureActivity
并管理结果
@Override
public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor)
String barcodeRead = rawResult.getText();
if(!MyValidator.isMyBarcode(barcodeRead))return;
Intent viewDetails = new Intent(this, DetailActivity.class);
viewDetails.putExtra(DetailActivity.EXTRA_BARCODE, barcodeRead);
viewDetails.putExtra(DetailActivity.EXTRA_SESSION, "some extras");
startActivity(viewDetails);
finish();
最后但并非最不重要的一点是在您的应用中为这个库添加一些功劳!!
【讨论】:
明确一点:我鼓励人们重用任何开源代码。但必须以尊重法律的方式进行。这包括尊重商标和版权。当人们复制并粘贴整个应用程序时,问题就来了。只是不要那样做。以上是关于中兴二维码/条码扫描的主要内容,如果未能解决你的问题,请参考以下文章