这个问题已被多次提出,仅提出建议。希望我能理解所有的建议。

依赖关系在清单中定义

<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

    <meta-data
        android:name="com.google.android.gms.vision.DEPENDENCIES"
        android:value="ocr" />


并添加到应用程序级别

compile 'com.google.android.gms:play-services-vision:9.8.0'


测试设备具有足够的存储空间,大于内部存储空间的10%,并且具有非常好的Internet连接。权限也有明确定义

我们启动TextRecognizer来检测文本,然后得到空响应:

 TextRecognizer textRecognizer = new TextRecognizer.Builder(getContext()).build();

    if (!textRecognizer.isOperational()) {

        Log.w("Main Activity", "Dependencies are not yet available");
        Toast.makeText(getContext(), "Cannot Detect", Toast.LENGTH_LONG).show();
        if(((MainActivity) getActivity()).hasLowStorage()) {
            Toast.makeText(getContext(), "Low Storage", Toast.LENGTH_LONG).show();
            Log.w("Custom_Storage", "Low Storage");
        }

    }


大多数建议是使用较低的依赖项compile 'com.google.android.gms:play-services:7.8+',但它并不适用于所有人。发布应用程序后,某些用户无法使用该应用程序。

这些建议不能解决问题。

类似问题:
TextRecognizer isOperational API always returns false
detector.isOperational() always false on android

最佳答案

需要TextRecognizer API才能下载少量依赖文件。通常,它是在安装时完成的,但有时会花费更长的时间。应用程序将自动下载这些文件。等待一些时间下载这些文件。在下载完成之前,TextRecognizer.isOperational将返回false。 doanlowd完成后,TextRecognizer.isOperational将返回true

07-26 05:01