Android打开/关闭屏幕和设置系统屏幕亮度方法
在有一次处理屏幕的时候,我通过设置值发现怎么都实现不了。
控制屏幕的两种方法:
第一:通过获取PowerManager对象,利用反射。打开/关闭屏幕,上代码:
/**
* 关闭屏幕 ,其实是使系统休眠
*
* @param context 上下文
*/
public static void goToSleep(Context context) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
try {
if (powerManager != null) {
powerManager.getClass().getMethod("goToSleep", long.class).invoke(powerManager, SystemClock.uptimeMillis());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
/**
* 唤醒屏幕
*
* @param context 上下文
*/
public static void wakeUp(Context context) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
try {
if (powerManager != null) {
powerManager.getClass().getMethod("wakeUp", long.class).invoke(powerManager, SystemClock.uptimeMillis());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
第二:通过设置数据库来设置屏幕亮度,需要权限如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
/**
* 获取当前亮度
*
* @param context 上下文
* @return 返回当前亮度值0-255
*/
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 resolver 系统内容提供者 Context.getContentResolver()
* @param brightness 亮度0-255之间
*/
public static void saveBrightness(ContentResolver resolver, int brightness) {
Uri uri = android.provider.Settings.System
.getUriFor("screen_brightness");
android.provider.Settings.System.putInt(resolver, "screen_brightness",
brightness);
resolver.notifyChange(uri, null);
}
发现使用设置数据库,常常不产生效果。有时候值改变了,但是屏幕效果不能出来。故采用power解决了。
在处理这个问题的时候我还采用了aidl的方式,但是总有一些莫名的问题。最后没办法放弃了。
开启了 remote:
Android打开/关闭屏幕和设置系统屏幕亮度方法相关推荐
- android系统应用程序设置时间,Android应用程序设置系统时间的方法
Android应用程序获取系统时间的方法: System.currentTimeMillis(); Android SDK虽然提供了设置系统时间的方法SystemClock.setCurrentTim ...
- android+系统屏幕亮度,android 设置系统屏幕亮度
android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...
- android 系统亮度,android 设置系统屏幕亮度
android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...
- Android : 反射机制获取或设置系统属性(SystemProperties)
Android.os.SystemProperties 提供了获取和设置系统属性的方法,但是这个类被隐藏了,应用开发时无法直接访问,可以通过反射的机制进行操作. 获取系统属性 public stati ...
- windows屏幕分辨率及系统缩放获取方法大全
本人微信公众号:CPP进阶之旅 如果觉得这篇文章对您有帮助,欢迎关注 "CPP进阶之旅" 学习更多技术干货 windows屏幕分辨率及系统缩放获取方法大全 方法一:MonitorF ...
- 如何查看计算机配置语言,电脑如何设置系统语言的方法
有些用户想要把电脑语言设置为英文或者其他,具体要怎么设置呢?下面由学习啦小编为大家整理了电脑如何设置系统语言的相关方法,希望对大家有帮助! 电脑如何设置系统语言的方法步骤如下 首先,点击"开 ...
- Android打开/关闭数据流量
这个是网上找的,经过自己整理.由于android并未公开这个类,因此如果要打开/关闭数据,需要通过反射 16/09/29注:5.0以上无效 MobileDataSwitcher.java import ...
- Android HttpURLConnection下载网络图片,设置系统壁纸
需求: 壁纸是url链接,get就能请求到,所以就用get请求到图片,把图片转化为bitmap,然后设置壁纸. 代码: 这里我封装了工具类 package xxxxx.utils;import and ...
- android 颜色资源文件,android中colors.xml颜色设置资源文件的方法
1. 打开res目录下的values文件夹,双击打开colors.xml文件进行编辑 上代码 #008577 #00574B #D81B60 #ff0000 #0000ff 2. 在res目录下的la ...
最新文章
- java 两个等长数组的中位数_查询两个数组的中位数
- 平安iq测试没通过的话影响入职吗_从外包测试到阿里巴巴,一位三本女生逆袭之路...
- 如何设置jinternalframe无边框_word文档美化技巧:加个边框提升版面颜值
- linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置
- minihomepage.exe 百度视频迷你主页
- 网路工程师要不要学mysql_网络工程师要学什么_网络工程师需要的技能
- 火星人(洛谷-P1088)
- wordpress个人博客小程序带流量主+教程
- jQuery: jscolor - color picker
- mac屏保时钟_OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
- Centos7 卸载自带的OpenJDK
- VS2019如何打包程序
- JS简单总结(前端ES6和JQ)
- css改变透明背景png图片的图标颜色
- python登录微信pc版_腾讯TIM iOS版2.5.6重大更新:新增支持微信帐号登录、语音进度条...
- 注意力机制——Spatial Transformer Networks(STN)
- [转载]中国文明网:为青少年“防沉迷”汇聚合力
- 【ArcGIS教程】专题图制作之人口地图——湖北省人口密度分析
- 软件测试公司都会查学历吗,高新技术企业申请会查员工学历吗?申请高新技术企业注意事项解读...
- 如何用纯CSS将图片填满div,自适应容器大小