[RK3288][Android6.0] 调试笔记 --- Camera动态热插拔支持
OS: Android 6.0
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