Я хочу получить доступ к веб-камере USB через планшет.
Я скачал этот проект для изучения и тестирования. Это работает отлично. Камера открывается, делает снимок и сохраняет.
проект - гитхаб
Я создал проект во флаттере и сделал канал связи для доступа к приложению. Но в тот момент, когда я пытаюсь открыть камеру, я получаю сообщение:
Пользователь не предоставил 10404/com.example.monitoramento разрешение на доступ к устройству /dev/bus/usb/001/002.
У меня есть файл device_filter.xml, в который я добавляю PID и VID устройства:
<?xml version="1.0" encoding="utf-8"?>
<usb>
<usb-device class="239" subclass="2" /> <!-- all device of UVC -->
<!-- a few android 9.0 -->
<usb-device class="14" subclass="9" />
<usb-device class="2" subclass="0" />
<usb-device class="6" subclass="-1" />
<usb-device class="39" subclass="0" />
<usb-device product-id="4836" vendor-id="9573" />
<usb-device product-id="2229" vendor-id="1133" />
<usb-device product-id="640" vendor-id="1409" />
<usb-device product-id="258" vendor-id="9228" />
<usb-device product-id="2074" vendor-id="1133" />
</usb>
Об этих ошибках также сообщается.
Я ценю любые комментарии!
Решение проблемы
Та же проблема с аналогичным приложением ( https://github.com/shengjunhu/android_uvc_camera ). Пользовательский интерфейс обоих приложений выглядит одинаково и даже имеет одинаковое название (UVCCamera), что заставляет меня подозревать, что они генетически связаны.
Android требует, чтобы приложения получали разрешение перед доступом к USB-устройству. Насколько я понимаю, есть два способа сделать это:
Определите фильтр намерений для приложения. Если подключено соответствующее USB-устройство, пользователю предлагается разрешить приложению доступ к USB-устройству, после чего приложение запускается. В этом случае у приложения уже есть разрешение. Для фильтра намерений требуется список устройств для прослушивания, например
device_filter.xml.Если приложение ищет устройство, а не ждет уведомления, разрешение должно быть получено явным образом. Это работает так же, как и другие разрешения во время выполнения, как описано в https://developer.android.com/guide/topics/connectivity/usb/host.html#permission-d.
Если ваше приложение сканирует устройства USB-камеры, а не прослушивает намерение, первый вариант недоступен, и изменение device_filter.xmlне имеет никакого эффекта. После обнаружения камеры вам нужно будет запросить разрешение и отложить доступ к камере до тех пор, пока разрешение не будет предоставлено.
Комментариев нет:
Отправить комментарий