Используйте камеру, подключенную через USB, вместо встроенной камеры

Я хочу создать приложение в android, которое при подключении устройства USB-камеры к устройству Android потребует, чтобы все приложения должны были обнаружить внешнюю камеру в качестве основной камеры. Например, если мы открываем приложение для камеры, тогда устройство берет снимок с того, который подключен через USB. Есть ли способ сделать это?

Пожалуйста, не закрывайте этот вопрос как не вопрос.

Ответ 1

Вы не можете сделать это, написав простое приложение, так как вы не решаете, какая камера по умолчанию. Это делается с помощью прошивки системы, и вы не можете изменить это через Android SDK.

Единственный способ добиться этого - настроить Android на уровне источника и добавить код для автоматического переключения камеры по умолчанию на тот, который подключен USB, когда он доступен.

Ответ 2

вы можете использовать OpenCV, в соответствии с этим документом это довольно просто.

для захвата кадров с камеры по умолчанию:

CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANDROID + 0 );

для захвата кадров из usb:

CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANDROID + 1 );

OpenCV является открытым исходным кодом, вы можете получить исходный код здесь , вам понадобится проект Android cmake

Edit:

android - это операционная система на базе Linux, вы можете загрузить эмулятор терминала Android и настроить свои настройки аудио и видео, как в Linux, вы можете либо отключите встроенную камеру в диспетчере устройств, либо измените настройки, чтобы использовать внешнюю веб-камеру по умолчанию. но я полностью отключил бы встроенную камеру.