android 修改 dpi_Android 手机修改屏幕亮度方案

4c5d08ca918d1666975ed5c205adda4c.png

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、获取系统Settings 中的亮度

二、修改APP界面屏幕亮度,不会影响其他APP

三、修改系统Settings 中屏幕亮度,影响所有APP

四、完整代码实现

一、获取系统Settings 中的亮度

系统屏幕亮度值在(0~255)之间,获取方法很简单,只需要调用以下方法即可。

/** * 1.获取系统默认屏幕亮度值 屏幕亮度值范围(0-255) * **/ private int getScreenBrightness(Context context) { ContentResolver contentResolver = context.getContentResolver(); int defVal = 125; return Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, defVal); }

修改屏幕亮度包含两种:

1.修改APP界面屏幕亮度,不会影响其他APP。

2.修改系统 Settings 中屏幕亮度,影响所有APP.

二,修改APP界面屏幕亮度,不会影响其他APP

修改自身 APP 亮度很简单,只需要在Activity OnCreate方法调用如下代码即可。

 /** * 2.设置 APP界面屏幕亮度值方法 * **/ private void setAppScreenBrightness(int birghtessValue) { Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); lp.screenBrightness = birghtessValue / 255.0f; window.setAttributes(lp); }

三、修改系统Settings 中屏幕亮度,影响所有APP

修改系统 Settings 中的屏幕亮度,由于会影响到所有APP,需要申请修改Settings的权限,同时需要取消光感自动调节屏幕亮度的功能,设置为手动调节模式,否则光感传感器会随着光照强度的变化修改系统屏幕亮度,并且非系统签名的APP,需要用户手动授权后才可以修改背光亮度。

关闭光感,设置手动调节背光模式实现方法如下:

 /** * 3.关闭光感,设置手动调节背光模式 *  * SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节屏幕亮度模式值为1 *  * SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节屏幕亮度模式值为0 * **/ public void setScreenManualMode(Context context) { ContentResolver contentResolver = context.getContentResolver(); try { int mode = Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE); if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); } }

非系统签名应用,引导用户手动授权修改Settings 权限

非系统签名应用,无法直接修改Settings,需要引导用户手动授权。

2944db8dcb862b3a1d8cd277627e9563.png

引导用户手动授权

 /** * 4.非系统签名应用,引导用户手动授权修改Settings 权限 * **/ private static final int REQUEST_CODE_WRITE_SETTINGS = 1000; private void allowModifySettings() { // Settings.System.canWrite(MainActivity.this) // 检测是否拥有写入系统 Settings 的权限 if (!Settings.System.canWrite(MainActivity.this)) { AlertDialog.Builder builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Light_Dialog_Alert); builder.setTitle("请开启修改屏幕亮度权限"); builder.setMessage("请点击允许开启"); // 拒绝, 无法修改 builder.setNegativeButton("拒绝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值