[RK3288][Android6.0] 调试笔记 --- Camera动态热插拔支持
Kernel: 3.10.92
原生Google代码只在开机的时候加载一次Camera 的配置, 当开机之后再去插USB Camera, 虽然USB模块能枚举成功USB Camera,但是Camera HAL 和 Camera Service是无法得知此事件的.
因此思维逻辑就是在每次APP初始化获取Camera信息的时候重新加载初始化一次Camera.
解决方法:
CameraService.cpp:
int32_t CameraService::getNumberOfCameras(int type) { ATRACE_CALL(); switch (type) { case CAMERA_TYPE_BACKWARD_COMPATIBLE: + if(mNumberOfNormalCameras == 0) { + ALOGE("no camera be found ! check again..."); + onFirstRef(); + } return mNumberOfNormalCameras; case CAMERA_TYPE_ALL: return mNumberOfCameras; default: ALOGW("%s: Unknown camera type %d, returning 0", __FUNCTION__, type); return 0; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17