我已经开发了一个Android应用程序,该应用程序使用Firebase MLKit文本识别API(在设备上)来检测图像上的文本。它可以在所有经过测试的设备上成功运行,但是在小米Mi 8(Android 9,MIUI 11.0.3)上,它永远无法下载ML模型,因此它始终会给出代码为14(UNAVAILABLE)的FirebaseMLException-等待模型下载。
这是我的代码:
try {
val imageBitmap = imagePath.getBitmapFromFilePath()
val image = FirebaseVisionImage.fromBitmap(imageBitmap)
val detector = FirebaseVision.getInstance().onDeviceTextRecognizer
detector.processImage(image)
.addOnSuccessListener { firebaseVisionText ->
onSuccess.invoke(textBlocksMapper.map(firebaseVisionText.textBlocks))
}
.addOnFailureListener { e ->
e.printStackTrace()
onError.invoke()
}
} catch (e: IOException) {
e.printStackTrace()
onError.invoke()
}
该特定设备上的错误是:
2019-10-29 12:07:28.683 4040-4217 E/Vision: Error loading module com.google.android.gms.vision.ocr optional module true: kw: No acceptable module found. Local version is 0 and remote version is 0.
2019-10-29 12:07:28.714 4040-4217 I/Vision: libocr.so library load status: false
2019-10-29 12:07:28.715 4040-4217 I/Vision: Request download for engine ocr is a no-op because rate limiting
2019-10-29 12:07:28.719 4040-4040 W/System.err: com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
我已经尝试过: 1.清除Google Play服务的缓存和数据 2.删除并授予相机权限 3.为firebase ml ocr和文本添加元数据标签 4.重新启动
...但是错误仍然存在。
可能是Xiaomi SO阻止了模型下载? 我想念什么吗?