增加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;
+
+
相关推荐
沅霖1 小时前
Android: Handler 的用法详解
android
鸿蒙布道师1 小时前
鸿蒙NEXT开发数值工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
硬件进化论2 小时前
硬件工程师面试问题(四):车载MCU面试问题与详解
单片机·嵌入式硬件·数码相机·电视盒子·智能音箱·智能手表
Yang-Never3 小时前
Open GL ES ->GLSurfaceView在正交投影下的图片旋转、缩放、位移
android·开发语言·kotlin·android studio·贴图
粤M温同学3 小时前
使用Android 原生LocationManager获取经纬度
android
stevenzqzq3 小时前
Android Hilt 教程
android
CYRUS_STUDIO3 小时前
Frida Stalker Trace 指令跟踪&寄存器变化监控
android·逆向·汇编语言
bst@微胖子3 小时前
Flutter之设计与主题&字体
android·flutter
xinxiangwangzhi_5 小时前
多视图几何--立体校正--Fusiello方法
图像处理·数码相机·算法·计算机视觉