如何调整系统屏幕亮度和程序内部屏幕亮度
在使用系统的IPowerManager设置系统屏幕亮度,代码如下(使用这个代码需要导入外部jar包,Y:\w990settings\alps\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar):
private void setBrightness(int brightness) {
try {
IPowerManager power = IPowerManager.Stub.asInterface(
ServiceManager.getService("power"));
//Only set backlight value when screen is on
if (power != null && power.isScreenOn()) {
power.setBacklightBrightness(brightness);
}
} catch (RemoteException doe) {
}
}
该代码在settings模块,显然是android:sharedUserId="android.uid.system"(Androidmanifest.xml里面)。是因为这个原因所以能够访问。需要权限android.permission.DEVICE_POWER才能访问,并且该权限只限于使用系统固件签名的应用才能够授予,基本上只有一些系统应用才能够有该权限。所以权限问题导致了不能够授予给三方应用该权限。
但是360省电确能够调整屏幕亮度。看来还有其他方法。发现如下方法可行:
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// TODO Auto-generated method stubtv_brightnessPercent.setText((int)((progress/255.0) * 100) + "%");int tmpInt = sb_modBrightness.getProgress();Settings.System.putInt(XEnergyActivity.this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, tmpInt);tmpInt = Settings.System.getInt(XEnergyActivity.this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, -1);WindowManager.LayoutParams wl = getWindow().getAttributes();float tmpFloat = (float) (tmpInt/255.0);if(tmpFloat > 0 && tmpFloat <= 1){wl.screenBrightness = tmpFloat;}getWindow().setAttributes(wl);
}
先将亮度信息tmpInt(最大255)存入Settings.System.SCREEN_BRIGHTNESS中:
Settings.System.putInt(XEnergyActivity.this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, tmpInt);
再调整当前窗口的亮度信息:
WindowManager.LayoutParams wl = getWindow().getAttributes();
float tmpFloat = (float) (tmpInt/255.0);
if(tmpFloat > 0 && tmpFloat <= 1)
{wl.screenBrightness = tmpFloat;
}
getWindow().setAttributes(wl);
注意这里面的w1为float类型,最大值为1.0f。所以需要进行转换。如果没有下面这个调整当前活动屏幕亮度,需要开启关闭屏幕一次,上面的那个putInt函数才会起作用。
如果只需要调整程序内部屏幕亮度(比如一些阅读器)只需要后面的WindowManager设置即可。但是,当退出程序的时候,屏幕会恢复到系统本身设置的亮度。
如何调整系统屏幕亮度和程序内部屏幕亮度相关推荐
- win10关掉扩展屏幕后,打开原来在扩展屏幕上的程序后主屏幕找不到怎么办?IIS扩展屏后断开扩展屏主屏看不到
一般可以这样操作,按Alt+空格,然后按M,然后用上下左右键把窗口移动到能看到的地方,再按回车.有些第三方的软件可能不能用,大部分都可以这样做.
- win10调节屏幕亮度_自动调节电脑屏幕亮度软件,保护你的眼睛
本文共514个字,预计用时2分钟 小伙伴们,今天给大家分享一个小软件,名字叫做 EyeCareApp,中文名:护眼软件 EyeCareApp是一款能够调节屏幕亮度的软件,它可以调整屏幕亮度,滤除蓝光, ...
- python使用循环结构编程打印出如下图案_使用双层for循环编写程序,在屏幕上打印输出如下图案...
展开全部 回答即可62616964757a686964616fe59b9ee7ad9431333361303561得2分经验值第三章 循环程序在编程中经常遇到需要多次规律相同的重复处理,这就是循环问题 ...
- python编程在哪里写程序-第一个Python程序——在屏幕上输出文本
本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字. Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...
- python3屏幕抓取程序_python之屏幕抓取
Tidy 和 HTML 解析 Beautiful Soup 屏幕抓取:是通过程序下载网页并从中提取信息的过程. 简单来见:下载数据并对其进行分析 思路:可使用urllib来获取网页的HTML代码,再使 ...
- android+系统屏幕亮度,android 设置系统屏幕亮度
android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...
- win8.1 计算机放在桌面,Win8.1怎么把开始屏幕中的程序放到桌面?
Win8.1怎么把开始屏幕中的程序放到桌面?在Win8.1系统中,我们都要在"Metro"界面来启动程序,很多伙伴觉得很麻烦,于是询问小编能不能将Win8.1开始屏幕中的程序放到桌 ...
- android 系统亮度,android 设置系统屏幕亮度
android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...
- 区分大小屏幕_第一个Python程序——在屏幕上输出文本
本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字.Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...
最新文章
- 漂亮的PCB设计图案
- Citrix各系列产品安装光盘资源下载链接
- Django环境的搭建以及最简示例
- Tkinter的entry组件
- 不使用任何路由协议使3台路由器通信
- android unix时间,android: 日期转Unix时间戳,Unix时间戳转日期,带时区
- Yearn已部署新YFI策略Brownie Mix
- linux平台 oracle 数据库 安装文档
- matlab2020面板介绍
- 经典语录(确实经典)
- c语言char和int8,关于数组:C中uint8和char之间的转换
- 数字电路反相器符号_逻辑非门真值表教程和反相器振荡器等效
- 雨林木风诚聘Linux研发工程师
- Dynamips路由模拟器使用心得
- 当 CPU 摸鱼时,它到底在干什么?
- android 高德地图方向指向不变问题分析
- 真正的 AI 内行盛会!
- 神经网络四:Softmax以及与Sigmoid的关系
- 【图像分类】2022-MPViT CVPR
- 原生js获取元素的子元素