一、写在前面
本文主要介绍在高通平台上,当设备枚举到的Camera设备数超过2个的时候(我们正常的设备是前后摄2个),上层应用通过CameraManager的getCameraIdList()接口,如何能遍历到全部的CameraId?
二、adb命令读取当前probe(枚举)到的Camera个数
通过dumpsys media.camera命令,我们能获取到关于camera相关的一些信息,其中就包含了当前系统probe到的Camera个数。
下面是我dumpsys出来的一些信息,可以看到当前probe到的Camera个数为1个。Number of camera devices: 1
Number of normal camera devices: 1
Device 0 maps to "0"
Active Camera Clients:
[
(Camera ID: 0, Cost: 100, PID: 6098, Score: 0, State: 2User Id: 0, Client Package Name: org.codeaurora.snapcam, Conflicting Client Devices: {})
]
Allowed user IDs: 0复制代码
三、设置 prop属性 vendor.camera.aux.packagelist
在CameraManager.java中的 getCameraIdList()方法中,在遍历CameraId的时候,有做了一些判断,我们来看下源码里面的具体逻辑。--------CameraManager.java
public String[] getCameraIdList() {
String[] cameraIds