Столкнулся с типичной проблемой для Android, когда тестировал распознавание barcode (а именно QR код) с помощью Mobile Vision от Google на устройстве Huawei P8 Lite с версией ОС: Android 6.0 (Marshmallow).
В проекте использовалась библиотека com.google.android.gms:play-services-vision:17.0.2. Версии compileSdkVersion 28, minSdkVersion 19, targetSdkVersion 28.
Проблема была невероятно тривиальной - код просто не распознавался. Что только не пытался сделать - менял ориентацию экрана, настраивал камеру, думал на освещение и так далее. Но все оказалось гораздо проще и типично для Android разработки. Проблема не в коде, а непосредственно с операционной системой устройства. Сделал я следующее, что мне помогло:
1) Полностью очистить кэш приложения Сервисы Google Play (Google Play Services) и удалить все данные для данного приложения.
2) Добавить в манифест для активити, в которой расположен SurfaceView, следующую строку с мета данными:
1 |
<meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="barcode" /> |
После переустановки дебаг сборки приложения на устройстве - все заработало и сканер успешно обнаружил QR код.