在小米手机上调节亮度出现失常问题

news/2024/12/5 9:51:01/

小米的新版系统(大于MIUI9),取到的当前亮度值是远大于255的,应该是小米修改了系统亮度的最大值(不知道小米是出于什么原因修改的)。所以最大值要根据系统版本动态获取。


public static final int MAX_BRIGHTNESS_VALUE = 230;  //设置的最大亮度值/*** 判断是否开启了自动亮度调节** @param context* @return*/public static boolean IsAutoBrightness(Context context) {boolean IsAutoBrightness = false;try {IsAutoBrightness = Settings.System.getInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;} catch (Settings.SettingNotFoundException e) {e.printStackTrace();}return IsAutoBrightness;}/*** 获取当前系统屏幕的亮度** @param context* @return*/public static int getScreenBrightness(Context context) {int nowBrightnessValue = 0;ContentResolver resolver = context.getContentResolver();try {nowBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);} catch (Exception e) {e.printStackTrace();}return nowBrightnessValue;}/*** 设置亮度,程序退出之后亮度失效** @param context* @param brightness*/public static void setCurrentWindowBrightness(Context context, int brightness) {// 如果开启自动亮度,则关闭。否则,设置了亮度值也是无效的if (IsAutoBrightness(context)) {stopAutoBrightness(context);}// context转换为ActivityActivity activity = (Activity) context;WindowManager.LayoutParams lp = activity.getWindow().getAttributes();// 异常处理if (brightness < 1) {brightness = 1;}// 异常处理if (brightness > getBrightnessMax()) {brightness = getBrightnessMax();}if(brightness==MAX_BRIGHTNESS_VALUE){lp.screenBrightness = brightness/255f;}else {lp.screenBrightness = brightness * (1f / getBrightnessMax());}activity.getWindow().setAttributes(lp);}/*** 获取最大亮度* @return max*/private static int getBrightnessMax() {try {Resources system = Resources.getSystem();int resId = system.getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android");if (resId != 0) {return system.getInteger(resId);}}catch (Exception ignore){}return 255;}// 停止自动亮度调节public static void stopAutoBrightness(Context context) {Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}// 开启亮度自动调节public static void startAutoBrightness(Context context) {Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}

http://www.ppmy.cn/news/241222.html

相关文章

Linux下安装docker教程

目录 一、安装CentOS系统 二、安装Docker 1.卸载之前安装过的旧版本&#xff1a; 2.安装docker 3.启动docker 4.配置docker镜像仓库 三、Docker的使用 1.docker容器常用指令&#xff1a; 2.运行案例&#xff1a;docker拉取并运行nignx 3.查看容器日志 一、安装CentOS系…

使用Android Studio开发天气预报APP(使用sqlite数据库)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

c++函数重载与运算符重载基础

什么是重载 重载&#xff0c;简单说&#xff0c;就是函数或者方法有相同的名称&#xff0c;但是参数列表不相同的情形&#xff0c;这样的同名不同参数的函数或者方法之间&#xff0c;互相称之为重载函数或者方法。 重载的作用&#xff1a;重载函数常用来实现功能类似而所处理的…

一文3000字从0到1用Python做安全测试攻击实战(建议收藏)

在本文中&#xff0c;我们将使用Python进行一次安全测试的实战演练&#xff0c;目标是找出并利用应用程序的安全漏洞。请注意&#xff0c;这个演练仅用于教育和研究目的&#xff0c;切勿将这些技术用于非法活动。 注意&#xff1a;未经授权的攻击是违法的。确保你在拥有明确权…

突破办公瓶颈,推荐5款电脑办公软件

1.AnyTXT AnyTXT是一款搜文件内容的第三方全文搜索工具&#xff0c;速度极快&#xff0c;基本秒出结果。而且右边可以直接预览文件&#xff0c;筛选&#xff0c;复制&#xff0c;翻译等功能丰富&#xff0c;完美替代自带的搜索。 2.Groupy 这是用于快速切换窗口的小型精致工…

锐角云主机linux启动盘制作,开启区块链新生态 Rain将助阵锐角云发布会

近日获悉&#xff0c;全球首台基于区块链的电脑——三角形主机&#xff0c;将于韩国时间3月16日于首尔新罗酒店开启发布会&#xff0c;届时&#xff0c;将有韩国巨星Rain、裴佑熙、Dream catcher等助阵现场。 锐角云预热海报 三角形主机是什么&#xff1f; 三角形主机是由锐角云…

2020共识纪元 | 锐角云分布式存储区块链峰会即将开启

随着区块链上升为国家上战略&#xff0c;区块链赋能实体将进入全新高度&#xff0c;凭借公开透明、不可篡改、去中心自组织等技术特征&#xff0c;渗透应用场景&#xff0c;重构商业价值信用体系。同时&#xff0c;伴随“信息互联网”到“价值互联网”的发展变革&#xff0c;区…

ARCGIS检查锐角程序

ARCGIS是一款强大的地理信息系统软件&#xff0c;它提供了许多工具和功能&#xff0c;可以帮助用户进行地图制作、数据分析和空间分析等任务。其中&#xff0c;Python是ARCGIS中常用的编程语言之一&#xff0c;可以用来编写各种辅助代码程序。本文将介绍如何使用Python编写一个…