增加android 禁用相机后摄的接口

调试没什么的,就是被自己挖矿了,代码写的是persist.sys.camera.disabled ,测试的时候用的是 persist.sys.camera.back.disabled 。。。。。

复制代码
+++ b/frameworks/av/services/camera/libcameraservice/CameraService.cpp
@@ -1207,6 +1207,22 @@ Status CameraService::validateClientPermissionsLocked(const String8& cameraId,
     return Status::ok();
 }
 
+       bool CameraService::isCameraDisabled(const android::String8& cameraId) const {
+    // 读取 persist.sys.camera.disabled 的值
+    char value[PROPERTY_VALUE_MAX];
+    property_get("persist.sys.camera.disabled", value, "0");
+    bool disabled = (atoi(value) == 1);
+   //  ALOGE("Camera %s  ..1223 ...is isCameraDisabled: %d", cameraId.string(), disabled);
+    // 仅当 Camera ID 为 "0"(后摄)时禁用
+    if (disabled && cameraId == "0") {
+       //              ALOGE("Camera %s is  1225 disabled by persist.sys.camera.disabled", cameraId.string());
+        return true;
+    }
+    return false;
+}
+
+
+

@@ -1621,6 +1642,14 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
 
     int originalClientPid = 0;
 
+   // bool isDisabled = isCameraDisabled(cameraId);
+   // ALOGE("Camera %s  ..1654 is isCameraDisabled: %d", cameraId.string(), isDisabled);
+       if (isCameraDisabled(cameraId)) {
+                //   ALOGE("Camera %s is disabled 1652 by system property", cameraId.string());
+                       // 返回设备不可用错误(或自定义错误码)
+                       return STATUS_ERROR_FMT(ERROR_DISABLED, "Camera %s is disabled", cameraId.string());
+               }
+
     ALOGI("CameraService::connect call (PID %d \"%s\", camera ID %s) for HAL version %s and "
             "Camera API version %d", clientPid, clientName8.string(), cameraId.string(),
             (halVersion == -1) ? "default" : std::to_string(halVersion).c_str(),
diff --git a/frameworks/av/services/camera/libcameraservice/CameraService.h b/frameworks/av/services/camera/libcameraservice/CameraService.h
@@ -100,6 +100,9 @@ public:
                         CameraService();
     virtual             ~CameraService();
 
+       bool isCameraDisabled(const android::String8& cameraId) const;
+
+
相关推荐
whysqwhw1 小时前
安卓内存优化
android
用户2018792831671 小时前
TabLayout禁止滑动 + 左对齐排列实现
android
whysqwhw2 小时前
安卓Drawable分类
android
_祝你今天愉快3 小时前
SparseArray & ArrayMap
android·数据结构
有Li3 小时前
SurgRIPE 挑战赛:手术机器人器械位姿估计基准测试|文献速递-医学影像算法文献分享
论文阅读·数码相机·医学生
2501_916007473 小时前
Charles中文版抓包工具使用指南 提高API调试和网络优化效率
android·ios·小程序·https·uni-app·iphone·webview
叽哥3 小时前
flutter学习第 6 节:按钮与交互组件
android·flutter·ios
xzkyd outpaper3 小时前
Android视图状态以及重绘
android
用户2018792831674 小时前
为什么 Tab 文字默认会全大
android
用户2018792831674 小时前
Tablayout默认情况下,标签为什么会比文字宽?
android