我想得到两个值 从cameraX和ML Kit使用条形码扫描仪(rawValue和格式),但我不能停止扫描,并插入数据到房间时,第一个被检测到。我的代码插入房间尽可能多的元素,因为在这个过程中检测到许多条形码(相同的条形码多次)
这是我在processImageProxy函数中的addOnSuccessListener:
scanner.process(inputImage).addOnSuccessListener { barcodeList ->
processBarcode(barcodeList)
}
这是我保存数据的实际方法:
private fun processBarcode(barcodeList: List<Barcode>) {
if (barcodeList.isNotEmpty()) {
with (barcodeList.first()) {
activityCameraScannerViewModel.rawValue = this.rawValue.toString()
activityCameraScannerViewModel.format = this.format.toString()
activityCameraScannerViewModel.setNewCard()
val intent = Intent(applicationContext, MainActivity::class.java)
intent.putExtra("rawValue", this.rawValue.toString())
intent.putExtra("format", this.format.toString())
startActivity(intent)
}
}
}
代码的实际结果是大量的插入(随机数)。我将感谢任何帮助。如果有人需要更多的代码,我会编辑的问题。谢谢。
2条答案
按热度按时间31moq8wy1#
简单的决议:
将扫描仪作为processBarcode函数的参数传递并调用
scanner.close()
完整代码:
44u64gxh2#
如果使用摄像机提供程序,用途: