我正在嘗試從Android ndk訪問USB攝像頭。在Android上通過ndk和V4L預覽USB Webcamera
Android系統有V4L內核模塊,所以我認爲最好使用V4L庫。他們都在NDK中,因此將它們納入我的項目並不是一件大事。
我的問題是這樣的:
我需要打開/ dev/VIDEO4併發送IOCTL到的文件描述符,但我沒有權限訪問的/ dev/VIDEO4。我想了三件事:
1)爲什麼我缺少/ dev/video4的權限?我的應用程序使用android.permission.CAMERA權限,因此運行該應用程序的用戶應該在相機組中,並且相機組在/ dev/video4上具有r + w權限,所以爲什麼我無法打開它? 2)我試圖從java端獲得文件描述符,這可以通過UsbManager類來實現,但該文件描述符指向/ dev/bus/usb/001/004。有沒有辦法從Java端請求/ dev/video4的權限?或者我可以包含一個用戶空間V4L庫,並將指針傳遞給/ dev/bus/usb/001/004中的通用USB設備?
3)OpenCV的Android版本是否支持V4L?我可以使用它預覽相機而無需訪問/ dev/video4嗎?
有沒有人嘗試過這樣的事情?
此外,我知道有使用libusb和libuvc來連接相機的庫(例如https://github.com/saki4510t/UVCCamera),但是這個庫非常不穩定,並且不能提供令人滿意的結果。
嗨。 afaik android權限將應用程序的用戶添加到某個linux組中,並且該應用程序繼承這個組的權限,但是您是對的,我已經閱讀過報告,即使是添加了正確組的權限的自定義內核也不會授予打開/ dev/VideoX時。 uvcvideo驅動程序似乎出現在Samsung Galaxy S5上,如果通過root權限訪問/ dev/videoX(https://code.google.com/p/android/issues/detail除外) ?ID = 159529)。這就是我現在正在做的。 – BT9