增加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;
+
+
相关推荐
白菜欣5 小时前
Linux — 进程控制
android·linux·运维
俩个逗号。。8 小时前
Gradle 踩过的坑
android
土星碎冰机12 小时前
ai自学笔记(3.安卓篇,制作app
android·笔记·ai
随遇丿而安13 小时前
专题:Glide / Coil / Fresco,不是三种写法,而是三套图片加载思路
android
只可远观14 小时前
Android 自动埋点(页面打开 / 关闭 + 点击事件)完整方案
android·kotlin
私人珍藏库14 小时前
【Android】小小最新AI--千变万化扮演任何角色--沉浸式互动
android·app·工具·软件·多功能
zh_xuan15 小时前
Android MVI架构
android·mvi
测试开发-学习笔记15 小时前
Airtest+Poco快速上手
android·其他
李斯维15 小时前
Android Jetpack 简介:由来和演进
android·android studio·android jetpack
阿巴斯甜15 小时前
ARouter 的使用:
android