我在我的项目中使用 Google 的 Vision API BarcodeScanner。我想在扫描代码后中断扫描并将内容存储在另一个活动中。我怎样才能做到这一点 ?有很多类和“互连”:x
谢谢 !
我在我的项目中使用 Google 的 Vision API BarcodeScanner。我想在扫描代码后中断扫描并将内容存储在另一个活动中。我怎样才能做到这一点 ?有很多类和“互连”:x
谢谢 !
如果您在示例代码中使用 CameraSourcePreview,则可以调用其“release()”方法来关闭相机和相关的条形码检测器。如果您在没有预览的情况下直接使用 CameraSource,那么您可以直接在该实例上调用“release()”。
请参阅讨论将结果传回的另一个问题:
因此,就停止扫描而言,我通过调用.release()
我的BarcodeDetector
实例使其工作。我按照这个例子,你可以看到他们Detector.Processor<Barcode>
为 BarcodeDetector 设置了一个。处理器有一个receiveDetections()
方法,所以我所做的只是调用barcodeDetector.release()
barcodeDetector 作为检测到条形码的实例。它对我来说很好,我还测试了扫描并在检测后启动另一个活动,并且只添加了一个活动,所以它实际上只是检测到一个条形码然后停止。
要将内容保存在另一个活动中,您可以receiveDetections()
使用 以相同的方法启动另一个活动Intent
,然后使用该putExtra()
方法获取另一个活动所需的数据,尽管我真的不知道您要保存什么,因此putExtra() 可能不足以满足您的需求。
编辑:关于示例向下滚动到“4. 使用相机读取 QR 码”,你会发现我在说什么。
您可以在方法中使用boolean
标志receiveDetections()
。该标志初始化为true
,在第一次检测到代码块后执行并将标志设置为false
,这样在新的检测后该块将不会被执行。这是一个例子。
在类中创建变量字段
private boolean firstDetected = true;
没有方法receiveDetections()
@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
SparseArray<Barcode> barcodes = detections.getDetectedItems();
if (barcodes.size() > 0 && firstDetected) {
/* Some code */
firstDetected = false;
}
}