Android:光感自动调节亮度
时间:2022-10-31 11:00:01
其实其他平台就像MTK,高通也差不多,大同小异,主要搜索关键词:config_autoBrightnessLevels、config_screenBrightnessBacklight,只是文件路径不同。
通过修改sensorhub上报下光感原始数据,或根据实际情况进行调整brightness level根据个人喜好,可以自动调节亮度功能的灵敏度。
展锐的代码路径如下:
device\sprd\roc1\common\overlay\frameworks\base\core\res\res\values\config.xml
- 16
- 32
- 50
- 100
- 140
- 180
- 240
- 300
- 600
- 800
- 1000
- 2000
- 3000
- 4000
- 5000
- 6000
- 8000
- 10000
- 20000
- 30000
- 10.45935
- 29.25559
- 29.25559
- 34.240692
- 37.514347
- 40.018696
- 46.885098
- 51.626434
- 58.610405
- 66.890915
- 77.61644
- 90.221886
- 105.80314
- 126.073845
- 154.16931
- 191.83717
- 240.74442
- 294.84857
- 348.05453
- 394.98703
- 405.2315
- 410.3658
- 0
- 5
- 10
- 15
- 20
- 25
- 30
- 35
- 40
- 45
- 60
- 75
- 90
- 105
- 120
-
- 135
- 150
- 165
- 180
- 195
- 210
- 225
- 240
- 255
查看光感数据上报原始值节点:
cat /sys/devices/virtual/sprd_sensorhub/sensor_hub/raw_data_als
可以跟一下代码就会发现在kernel下:
kernel4.14\drivers\iio\sprd_hub\shub_core.c
static ssize_t raw_data_als_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct shub_data *sensor = dev_get_drvdata(dev);
u8 data[2];
u16 *ptr;
int err;
ptr = (u16 *)data;
if (sensor->mcu_mode <= SHUB_OPDOWNLOAD) {
dev_err(dev, "mcu_mode == SHUB_BOOT!\n");
return -EINVAL;
}
err = shub_sipc_read(sensor,
SHUB_GET_LIGHT_RAWDATA_SUBTYPE, data, sizeof(data));
if (err < 0) {
dev_err(dev, "read RegMapR_GetLightRawData failed!\n");
return err;
}
return sprintf(buf, "%d\n", ptr[0]);
}
static DEVICE_ATTR_RO(raw_data_als);