一、FW:获取Camera对象
//frameworks\base\core\java\android\hardware\Camera.java
public static Camera open(int cameraId) {
//运行在APP进程
return new Camera(cameraId);
}
Camera1 通过open静态方法获取Camera对象
// frameworks\base\core\java\android\hardware\Camera.java 运行在APP进程
Camera(int cameraId) {
//public native static int _getNumberOfCameras();
//普通引用最多可获取2个设备即前摄和后摄,如果是属性vendor.camera.aux.packagelist配置的按照实际数量可获取到
if(cameraId >= getNumberOfCameras()){
throw new RuntimeException("Unknown camera ID");
}
//1.初始化相关回调 2.初始化EventHandler
//3.系统属性vendor.camera.hal1.packagelist 定义的package使用的HAL版本为CAMERA_HAL_API_VERSION_1_0 = 0x100,默认是CAMERA_HAL_API_VERSION_NORMAL_CONNECT = -2; ,通过JNI:native_setup(new WeakReference<Camera>(this), cameraId, halVersion, packageName)设置下去
int err =

最低0.47元/天 解锁文章
4098

被折叠的 条评论
为什么被折叠?



