首页 > 解决方案 > 如何显示从 ML Kit 下载的模型的进度

问题描述

我正在使用谷歌数字墨水进行手写识别。需要下载一次的模型大小为 20MB,下载需要一些时间。有没有办法使用进度条显示下载进度?

我的代码如下:

fun download(context: Context) {
    var modelIdentifier: DigitalInkRecognitionModelIdentifier? = null
    try {
        modelIdentifier =
            DigitalInkRecognitionModelIdentifier.fromLanguageTag(lang)
    } catch (e: MlKitException) {
        // language tag failed to parse, handle error.
    }

    model = DigitalInkRecognitionModel.builder(modelIdentifier!!).build()

    val remoteModelManager = RemoteModelManager.getInstance()
    remoteModelManager.download(model, DownloadConditions.Builder().build())
        .addOnSuccessListener {
            Log.i("StrokeManager", "Model downloaded")
            Toast.makeText(context, "Model Downloaded", Toast.LENGTH_SHORT).show()

        }
        .addOnFailureListener { e: Exception ->
            Log.e("StrokeManager", "Error while downloading a model: $e")
            Toast.makeText(context, "Model Download Failed", Toast.LENGTH_SHORT).show()
        }
}

标签: android-studioandroid-progressbargoogle-mlkit

解决方案


此刻,download API 并没有报告确切的下载进度,例如 10%、20%、50%……如果我们看到更多的兴趣,我们会考虑添加这样的支持。

顺便说一句,这是 ML Kit github repo 中提出的相同问题:https ://github.com/googlesamples/mlkit/issues/165


推荐阅读