安卓屏幕亮度设置相关

原创 2015年11月18日 16:00:15

        我们知道,安卓手机屏幕的亮度和锁屏时间是由系统设置控制的,但在开发某些应用时,我们不希望它运行过程中锁屏或者希望保持指定的亮度,虽然这些在系统设置选项里可以实现,但难免会忘记设置以至于达不到希望的运行效果。如果在开发程序时,把这些工作在代码里实现是个不错的选择。

    那么如何实现代码控制屏幕锁屏和亮度呢?

    1、如果希望保持屏幕常亮,可以在代码中onCreate()下添加如下语句:   

<pre name="code" class="java" style="font-size: 14px;">        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);</span>
        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">// MyTag可以随便写,可以写应用名称等</span>
        <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);</span>
        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">// 换成PowerManager.SCREEN_DIM_WAKE_LOCK会变暗)</span>
        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "MyTest1");</span>
        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">wl.acquire();// 开启屏幕常亮</span>
        <span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">wl.cancel();//关闭屏幕常亮(可根据实际情况添加到指定位置)</span>


          2、如果希望保持屏幕常亮,则需要定义几个函数:

        private void screenBrightness_check()// 亮度模式检测,如果为自动,则关闭该模式
	{
		// 先关闭系统的亮度自动调节
		try {
			if (android.provider.Settings.System.getInt(getContentResolver(),
					android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE) == android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
				android.provider.Settings.System
						.putInt(getContentResolver(),
								android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
								android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
			}
		} catch (SettingNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void autoBrightness()// 设置亮度自动调节
	{
		android.provider.Settings.System
				.putInt(getContentResolver(),
						android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,
						android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
	}

	private void setScreenBritness(int brightness)// 亮度调节
	{
		// 不让屏幕全暗
		if (brightness <= 1) {
			brightness = 1;
		}
		// 设置当前activity的屏幕亮度
		WindowManager.LayoutParams lp = this.getWindow().getAttributes();
		// 0到1,调整亮度暗到全亮
		lp.screenBrightness = Float.valueOf(brightness / 255f);
		this.getWindow().setAttributes(lp);

		// 保存为系统亮度
		android.provider.Settings.System.putInt(getContentResolver(),
				android.provider.Settings.System.SCREEN_BRIGHTNESS, brightness);

	}
         /*在调用时,运行如下函数*/
         screenBrightness_check();// 关闭亮度自动调节
         setScreenBritness(n);// 设置指定亮度,n的取值范围是0—255,其中0为最暗,255最亮
        3、最后注意在AndroidManifest.xml中添加相应的权限:

<span style="font-size:12px;"><uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /></span>
<span style="font-size:14px;">     </span>
        这样,我们就可以在需要时调节屏幕亮度和常亮了。

版权声明:本文为博主原创文章,转载请注明出处。

Android 修改系统屏幕亮度

[toc] Android系统的亮度值取值范围在0~255,数据类型是int型. 下面分两步介绍: 介绍关于系统亮度的一些常用的方法 结合一个案例说说 一.系统亮度常用的方法1. 获得当前屏幕亮...
  • atgcu26
  • atgcu26
  • 2017年03月30日 23:07
  • 1516

Android 调节屏幕亮度(当前应用和系统亮度)

1、只改变当前程序屏幕亮度      当前屏幕亮度的取值范围:attrs.screenBrightness  0.0(暗)~1.0(亮)      需要屏幕恢复到系统亮度,可将 attrs.scree...
  • xinyutianyu
  • xinyutianyu
  • 2015年05月09日 22:42
  • 4212

Android开发之调节屏幕亮度

Android开发之调节屏幕亮度在很多app中进入二维码显示界面时会自动调整屏幕亮度,那么如何实现调节app的屏幕亮度呢?下面我来为大家介绍:注:调节屏幕亮度的核心思想就是对安卓系统提供的Conten...
  • gs12software
  • gs12software
  • 2016年10月26日 09:38
  • 1420

Android调整屏幕亮度和改变屏幕亮度调整模式的代码

最近有一个调整屏幕亮度的需求,在网上找了各种代码,心乱如麻。不是长篇大论说源码的,就是只言片语就上代码的,关键是代码还不能直接用。 这里面确实是有一些坑,在这里我会把可以用的代码写出来,并且告诉大家坑...
  • hzlxtq123
  • hzlxtq123
  • 2016年12月19日 16:09
  • 2205

Android设置屏幕亮度

使用场景最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度。 其实,调节屏幕亮度的场景应用很广,例如很多视频应用都响应touch事件来进行亮度调节。屏幕亮度调节模式...
  • zinss26914
  • zinss26914
  • 2015年10月28日 18:46
  • 6997

记录一下Android系统设置亮度遇到的坑

本文重在记录自己写系统亮度调节时遇到的坑。 参考博客:http://www.2cto.com/kf/201509/439791.html 一、获取系统亮度 public static int g...
  • feibafeibafeiba
  • feibafeibafeiba
  • 2017年02月20日 11:34
  • 267

安卓修改系统的屏幕亮度

首先要添加系统权限   Activity里面的代码如下    seekBar = (SeekBar)layout.findViewById(R.id.seekBar1);       tex...
  • abc5382334
  • abc5382334
  • 2013年10月17日 23:04
  • 8340

Android 实现调整屏幕亮度,以及自动适应

在Activity中实现获取系统亮度状态,使用seekbar 修改屏幕亮度,以及实现屏幕亮度自动适应 import android.app.Activity; import android....
  • csh130
  • csh130
  • 2015年10月27日 06:36
  • 232

android 设置系统屏幕亮度

转自:http://blog.csdn.net/skdev/article/details/5335554 网上都到的都是下面这种,并不是真正设置系统的亮度: public void onShar...
  • zhuangxujun
  • zhuangxujun
  • 2013年02月22日 10:19
  • 8590

Android4.4 背光亮度最低设置

在android中可能出现这样一种不友好的现象,当用户选择自动调整屏幕亮度或者将屏幕亮度调整为最小时,系统整个屏幕都黑了。 完全不知道这么解决? 有两种解决办法: 1. 在android中设置用...
  • Harith
  • Harith
  • 2015年05月16日 18:08
  • 1931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓屏幕亮度设置相关
举报原因:
原因补充:

(最多只允许输入30个字)