Google Vision API Text Recognizer не работает
Я использовал Google vision API для чтения текста с любого объекта, такого как газета или текст на стене. Я пробовал один и тот же пример с сайта разработчика Google, но мой Text Recognizer всегда возвращает false при IsOperational
функция. Я тестирую на Blackberry Keyone, а также тестировал на Moto X Play нормально работает.
Файл Gradle:
compile 'com.google.android.gms:play-services-vision:11.0.4'
Может ли кто-нибудь помочь мне в этом. Заранее спасибо
TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();
textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay, OcrCaptureActivity.this));
if(!textRecognizer.isOperational()) {
Log.e("TextRecog","Not Operational"); IntentFilter lowstorageFilter = new
IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW); boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null;
}
3 ответа
Добавить метаданные api vision в ваш манифест приложения
<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"/>
Метод isOperational из [TextRecognizer] ( https://developers.google.com/android/reference/com/google/android/gms/vision/text/TextRecognizer) наследуется от класса Detector. Метод не сразу возвращает true после настройки.
Из документов
"Указывает, имеет ли детектор все необходимые зависимости, доступные локально для выполнения обнаружения.
Когда приложение впервые установлено, может потребоваться загрузка необходимых файлов. Если это возвращает false, эти файлы еще не доступны. Обычно эта загрузка выполняется во время установки приложения, но это не гарантируется. В некоторых случаях загрузка могла быть отложена ".
Обычно, если он возвращает false, закодируйте его, чтобы подождать и повторить попытку. Я предполагаю, что вы выполняете тесты на телефоне, вам нужно будет дать ему некоторое время, чтобы загрузить все необходимые библиотеки, прежде чем этот метод вернет true.
Вы должны добавить это в свой AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
>
<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"/>