android8camera,[Android8.0/9.0/10]Camera:外接 USB 摄像头
概述
Android 平臺支持使用即插即用的 USB 攝像頭(即網絡攝像頭),但前提是這些攝像頭采用標準的 Android Camera2 API 和攝像頭 HIDL 接口。網絡攝像頭通常支持 USB 視頻類 (UVC) 驅動程序,并且在 Linux 上,系統采用標準的 Video4Linux (V4L) 驅動程序控制 UVC 攝像頭。
USB 相機 HAL 進程是外接攝像頭提供程序的一部分,該提供程序會監聽 USB 設備可用性,并相應地枚舉外接攝像頭設備。該進程具有與內置相機 HAL 進程類似的權限和 SE 策略。直接與 USB 設備通信的第三方網絡相機應用訪問 UVC 設備時所需的相機權限與所有常規相機應用所需的權限相同。
實現
系統必須支持 android.hardware.usb.host
/system/etc/permissions下需要添加host的聲明
此外,還必須啟用Kernel的 UVC 設備內核。
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_MEDIA_USB_SUPPORT=y
要在相應的設備細分版本中啟用外接攝像頭提供程序,以便添加必要的 SELinux 權限、外接攝像頭配置以及外接攝像頭提供程序依賴項,請完成以下步驟:
將外接攝像頭配置文件和外接攝像頭庫添加到 device.mk。
+PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl
+PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-external-service
+PRODUCT_COPY_FILES +=
+device/manufacturerX/productY/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR )/etc/external_camera_config.xml
將外接攝像頭提供程序名稱添加到設備 Treble HAL 清單。
android.hardware.camera.provider
passthrough
2.4
ICameraProvider
legacy/0
+ external/0
(選做)如果設備在 Treble 直通模式下運行,請更新 sepolicy,以便 cameraserver 可以訪問 UVC 攝像頭。
+# for external camera
+allow cameraserver device:dir r_dir_perms;
+allow cameraserver video_device:dir r_dir_perms;
+allow cameraserver video_device:chr_file rw_file_perms;
external_camera_config.xml的示例
0
1
您可以通過修改 external_camera_config.xml 文件來自定義外接攝像頭提供程序。具體而言,客戶可以自定義以下參數:
內部攝像頭的排除視頻節點
支持的圖片大小和幀速率上限
Inflight 緩沖區數量(在卡頓與內存之間進行權衡)
除了這些參數之外,您還可以添加自己的參數或開發自己的配置。
標簽:10,外接,Android8.0,camera,Camera,external,UVC,攝像頭,USB
來源: https://blog.csdn.net/weixin_39966398/article/details/110641601
總結
以上是生活随笔為你收集整理的android8camera,[Android8.0/9.0/10]Camera:外接 USB 摄像头的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql count distinct
- 下一篇: python继承问题_Python类的继