之前一直想研究下系统相机打开 USBCamera 来着,断续找了些资料和未验证 patch。最近刚好又有这方面的需求,
索性就这次搞定它吧。前后搞了快半个月,这里记录下这期间的思路。
谷歌应该从 7.0 还是 9.0 开始就提供了 USB camera 的 API支持, 外接 USB 摄像头
只需要确保 otg 功能和可成功发现摄像头节点 /dev/video* ,通过调用 CameraManager 打开对应 id LENS_FACING_EXTERNAL,就能成功预览
packages/apps/Camera2 中没有检测 LENS_FACING_EXTERNAL id 的逻辑,我们简单修改就可。
vendor/mediatek/proprietary/packages/apps/Camera2 中直接劝退,不要浪费时间,里面封装太多,什么人脸、聚焦、一堆效果,
不同 usbcamera 会获取不到对应的参数配置,处理起来无穷无尽。所以还是老老实实用原生的相机即可,顺带提一下 RK 也是用的
packages/apps/Camera2,所以只要底层都是ok的,你插入 usbcamera 打开系统相机就完全ok
效果图
修改清单
device/mediate