26
2017
09

[RK3288][Android6.0] 调试笔记 --- Camera动态热插拔支持

Platform: Rockchip
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;
    }
}
上一篇:[RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题 下一篇:Android延迟界面跳转的方法