[英]Calling asyn method in synchronous way in Kotlin coroutine
我正在尝试运行 Google ML Kit function,结果将在回调中,并且需要将该值作为返回类型传递给它在 Kotlin 中执行的方法。 我尝试了 Kotlin 协程的一些样本,但我仍然遗漏了一些东西并且它失败了。 我还在学习 Kotlin。
internal fun processImageSync(image: InputImage) : String{
var doctype = ""
val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)
recognizer.process(image)
.addOnSuccessListener { visionText ->
var texttoscan = visionText.text.trim()
doctype = findstr(texttoscan)
}
.addOnFailureListener {
}
return doctype;
}
我该如何解决这个问题?
使用kotlinx-coroutines-play-services 模块
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.0")
}
使用扩展Task.await
internal suspend fun processImageSync(image: InputImage): String {
val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)
return recognizer.process(image)
.await()
.let { visionText -> findstr(visionText.text.trim()) }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.