Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
RK3288平台修改请参考 [RK3288][Android6.0] 调试笔记 — Camera动态热插拔支持
改动如下:
CameraHal部分:
/* */
diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cpp
index 01afa0d..07380f2 100755
--- a/CameraHal/CameraHal_Module.cpp
+++ b/CameraHal/CameraHal_Module.cpp
@@ -712,6 +712,7 @@ int camera_get_number_of_cameras(void)
int cam_cnt=0,fd=-1,rk29_cam[CAMERAS_SUPPORT_MAX];
struct v4l2_capability capability;
rk_cam_info_t camInfoTmp[CAMERAS_SUPPORT_MAX];
+ char usbcameraPlug[PROPERTY_VALUE_MAX];
char *ptr,**ptrr;
char version[PROPERTY_VALUE_MAX];
char property[PROPERTY_VALUE_MAX];
@@ -722,7 +723,10 @@ int camera_get_number_of_cameras(void)
struct timeval t0, t1;
::gettimeofday(&t0, NULL);
- if (gCamerasNumber > 0)
+ property_get("persist.sys.usbcamera.status", usbcameraPlug, "");
+ bool plugstate = (strcmp(usbcameraPlug, "add") == 0)
+ || (strcmp(usbcameraPlug, "remove") == 0);
+ if (gCamerasNumber > 0 && !plugstate)
native部分:
diff --git a/media/libmedia/MediaProfiles.cpp b/media/libmedia/MediaProfiles.cpp
index fe0126a..99a5d48 100755
--- a/media/libmedia/MediaProfiles.cpp
+++ b/media/libmedia/MediaProfiles.cpp
@@ -718,7 +718,7 @@ MediaProfiles::getInstance()
}
CHECK(sInstance != NULL);
sInstance->checkAndAddRequiredProfilesIfNecessary();
- sIsInitialized = true;
+// sIsInitialized = true;
}
return sInstance;
diff --git a/services/came