这个问题已被多次提出,仅提出建议。希望我能理解所有的建议。
依赖关系在清单中定义
<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
。