Android之调节屏幕亮度(文末附源码),费时6个月成功入职阿里

本文介绍了在Android中如何调节屏幕亮度,包括去除自动亮度、封装改变系统屏幕亮度属性的详细步骤。针对Android 6.0及以上版本,强调了权限管理的重要性,提供了解决方案并提供了相关代码示例。此外,还分享了作者的职业经历和Android开发的学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先调用Settings.System.canWrite(Context)判断手机系统,Android6.0以下的直接允许修改亮度的操作;Android6.0以上的则要进一步判断是否已经获得了修改系统设置的权限,没有的话就要打开如下界面去设置。

修改系统设置界面

无论用户是否授权,我们都需要一个回调,这时onActivityResult就可以派上用场了:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RQ_WRITE_SETTINGS -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.System.canWrite(mContext)) {
shortToast(“已获取权限”)
changeSystemBrightness()
} else {
shortToast(“你拒绝了权限”)
}
}
}
}
}

代码很简单,就不做过多解释了。

4.3 去除自动亮度

前面我们虽然解决了权限问题,但是还要考虑到一个实际情况,那就是用户可能会设置了自动亮度,在这个前提下是无法改变系统屏幕亮度的。所以这里要做两步处理:

  1. 判断用户是否开启了自动亮度;
  2. 如果当前开启了自动亮度,则需要将其关闭。
4.3.1 判断是否自动亮度

我们在工具类中添加isAutoBrightness属性,它只有Getter方法,返回一个布尔值。这里调用Settings.System.getInt()方法,第二个参数传入 Settings.System.SCREEN_BRIGHTNESS_MODE表示我们要获取系统屏幕亮度模式,如果是Settings.System.SCREEN_BRIGHTNESS_MODE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值