我需要创建一个应用程序,其中一个功能将具有条形码扫描仪。我正在寻找一些代码示例来制作条形码扫描仪,但我还没有找到任何完整的示例代码。
我发现的只是一个与Zxing app一起使用的代码示例。但我不想执行任何辅助应用程序。我希望拥有一体化。
有人知道一些例子吗?
感谢。
答案 0 :(得分:4)
ZXing是开源的!如果您真的想要实现自己的条形码扫描仪,那么请查看源代码。
您可以在线浏览代码here,它被许可为Apache License 2.0。
答案 1 :(得分:3)
Zxing有一个很棒的基于Intent的API,旨在用作辅助应用程序。我建议您检查用户是否安装了Zxing应用,如果没有,请将其重定向到Google Play商店进行下载。
答案 2 :(得分:2)
我知道我在这里回答很晚,但所有人都在寻找这个问题的最新答案,不再需要依赖第三方apis,Google通过Google Play Services 7.8提供Barcode Scanning APIs。有关详细信息,请参阅CodeLabs,Documentation,Github Sample。
答案 3 :(得分:0)
如果您想在应用内部实施条形码扫描器,而不依赖于其他可以使用 ZXing Android Embedded 的应用,您只需要在您的gradle dependecies中声明其依赖并使用其中的功能应用
要使用它,请将以下内容添加到build.gradle文件(项目/模块):
public void scanBarcode() {
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
integrator.setPrompt("Scan the barcode");
integrator.setCameraId(0); // Use a specific camera of the device
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();
}
现在,在您的代码中,您可以通过以下方式开始扫描活动:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null && scanResult.getContents() != null) {
String content = scanResult.getContents().toString();
// content = this is the content of the scanned barcode
// do something with the content info here
}
}
以这种方式处理结果:
import os, random
def makerange(number):
lijst = [random.randint(1, number) for _ in range(1, random.randint(2, number))]
return lijst
a, b = makerange(20), makerange(20)
c = {item for item in a if item in b} # Set comprehension
print(c)
更多信息可在 ZXing Android Embedded github repo上找到,链接如下。