安卓屏幕亮度设置相关

原创 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>
        这样,我们就可以在需要时调节屏幕亮度和常亮了。

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

相关文章推荐

在Unity中调整安卓当前窗口屏幕亮度的实现(无需导出工程或制作插件)

由于我要在程序中实现改变屏幕亮度,可是在网上一找,全是要先导出为安卓工程,或者是创建插件,这些都太烦了。 其实Unity提供了一个很好的和安卓交互的接口,根本不需要另作设置。理论上,只要有安卓代码,...

安卓调节屏幕亮度Seekbar

Xml布局         android:id="@+id/mySeekBar_light"         android:la...

安卓修改系统的屏幕亮度

首先要添加系统权限   Activity里面的代码如下    seekBar = (SeekBar)layout.findViewById(R.id.seekBar1);       tex...

安卓调节屏幕亮度

  • 2016-07-24 20:58
  • 1.46MB
  • 下载

android中屏幕亮度相关设置

测试Activity: package com.home.screenbrightness; import android.app.Activity; import android.os.B...

android中屏幕亮度相关设置

测试Activity: [java] view plaincopy package com.home.screenbrightness;      im...

与屏幕亮度调节相关的各种方法整理

[java] view plaincopy public class SystemManager {          private ...

安卓屏幕相关工具类

安卓屏幕适配相关

1、了解几个概念 (1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕...

安卓--获取手机屏幕的相关参数

对px与dp进行一些解释,并获取手机屏幕的相关参数
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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