思路
原生Google代码只在开机的时候加载一次Camera 的配置, 当开机之后再去插USB Camera, 虽然USB模块能枚举成功USB Camera,但是Camera HAL 和 Camera Service是无法得知此事件的.
因此解决思路就是在每次APP初始化获取Camera信息的时候重新加载初始化一次Camera.
解决方案
Android6.0
CameraService.cpp:
1 | int32_t CameraService::getNumberOfCameras(int type) { |
Android7.1
HAL 层
CameraHal/CameraHal_Module.cpp
1 | diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cpp |
native 部分
1 | diff --git a/media/libmedia/MediaProfiles.cpp b/media/libmedia/MediaProfiles.cpp |
framework部分
1 | diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java |