概述
两套方案,Google的ML KIT套件,zxing的zxing-android-embedded
选型第二种,优缺点自己评估 理论上google的套件更优雅可靠但是其基于机器学习仅提供两种方式,捆绑训练模型包或Google Play服务,让应用变得更大或国内无法使用Google服务
private final ActivityResultLauncher<ScanOptions> barcodeLauncher = registerForActivityResult(new ScanContract(),
result -> {
// 处理单独扫码时的扫码结果 result.getContents()
}
});
ScanOptions options = new ScanOptions();
options.setDesiredBarcodeFormats(ScanOptions.ONE_D_CODE_TYPES);
options.setPrompt("扫描条码");
options.setCameraId(0); // Use a specific camera of the device
options.setBeepEnabled(false);
options.setBarcodeImageEnabled(true);
options.setCaptureActivity(ContinuousCaptureActivity.class);
viewBinding.videoCaptureButton.setOnClickListener(i -> barcodeLauncher.launch(options));
见ISSUE
需求描述:扫码与拍摄分离,在点击按钮时获取预览图图像
barcodeView.getBarcodeView().setUseTextureView(true);
Bitmap bitmap = ((TextureView) barcodeView.getBarcodeView().getChildAt(0)).getBitmap();