android屏幕亮度权限,安卓支持将屏幕亮度设为0的方法。

 2023-09-11 阅读 15 评论 0

摘要:前言,本文通过修改framework代码实现,单纯在app上是无法做到的,此外本文修改的是安卓9.0源码。1、安卓app中通过代码修改屏幕亮度的方法。可能需要的权限:设置屏幕亮度:/**安卓手机亮度调到最大但还不亮。* app中设置亮度函数* 设置当前系

前言,本文通过修改framework代码实现,单纯在app上是无法做到的,此外本文修改的是安卓9.0源码。

1、安卓app中通过代码修改屏幕亮度的方法。

可能需要的权限:

设置屏幕亮度:

/**

安卓手机亮度调到最大但还不亮。* app中设置亮度函数

* 设置当前系统的亮度值:0~255

* 虽然参数可以为0,但是实际上屏幕还是有一定亮度,实际会设置为10,这个值对应的具体配置文件位置:

* frameworks\base\core\res\res\values\config.xml中config_screenBrightnessSettingMinimum值

* 虽然把这个值设为0可以将亮度设为0,但是系统设置中的亮度调节也可以调到0,这不是我们想要的结果。

* 我们只是单纯的想通过代码设置亮度为0

安卓怎么开深色模式?*/

public void setSysScreenBrightness(int brightness, Context context) {

try {

ContentResolver resolver = context.getContentResolver();

Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);

Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, brightness);

工程模式修改最低亮度?resolver.notifyChange(uri, null); // 实时通知改变

} catch (Exception e) {

Log.e("xxx", "设置当前系统的亮度值失败:" + e.getMessage(), e);

}

}

2、实现只能通过代码修改屏幕亮度为0,而不影响系统设置中屏幕亮度的最小值方法。

iphone自动调节亮度?为了不影响系统亮度设置,我们不去修改frameworks\base\core\res\res\values\config.xml中config_screenBrightnessSettingMinimum参数值。而是修改frameworks\base\services\core\java\com\android\server\display\DisplayPowerController.java的构造函数。

DisplayPowerController(),如下修改,可设置最小亮度为0

将如下语句

final int screenBrightnessSettingMinimum = clampAbsoluteBrightness(resources.getInteger(

com.android.internal.R.integer.config_screenBrightnessSettingMinimum));

改成

安卓手机怎么调节屏幕亮度时间、// add by zzh for set birghtness as 0 @{

final int screenBrightnessSettingMinimum = 0;

// @}

这样就能使Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, 0);生效,且不影响系统设置中的亮度设置最小值。

3、通过app设置屏幕亮度为0后,若直接重启系统,则开机后屏幕亮度也是0,即屏幕全黑,导致无法操作,解决方法。

\frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java中

安卓亮度调节。private void updatePowerStateLocked() {

// add by zzh @{

// system param, if true, then use default screen timeout way, or only set brightness as 0

boolean needSleep = SystemProperties.getBoolean("persist.sys.powersave.open", true);

if (!needSleep && mDirty == 288) {

// mDirty == 288 only boot system can fit

Android 文件权限、// if has set brightness as 0 before reboot,

// we will reset brightness to non zero bright, or screen is black after boot

int lastBrighness = SystemProperties.getInt("persist.sys.last.brightness", 10);

// reset to default brightness

if (lastBrighness <= 0)

lastBrighness = 102;

安卓root权限。setSysScreenBrightness(lastBrighness, mContext);

}

// @}

// .....

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/43232.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息