关于Android屏幕亮度的一个需求,嵌入式音视频开发书籍

但是啊,系统亮度是需要权限的,但是获取权限会影响用户体验,所以直接PASS。

如何解决?

然后发现了一个可以监听系统亮度发生变化的方法。

//监听屏幕亮度变化

getContentResolver().registerContentObserver(

Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),

true,

mBrightnessObserver);

/*

  • 屏幕亮度变化监听的回调

  • */

private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {

@Override

public void onChange(boolean selfChange) {

// 当前系统的屏幕亮度(当用户改变了系统亮度后,会回调到该方法)

int currentValue = Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);

}

};

最终解决!

在监听里,当监听到用户第一次主动去修改屏幕亮度时,调用setActivityBrightness(2)让我们设置的屏幕亮度失效即可。

//在进入Act的时候调用

setActivityBrightness(1.0f)

//将当前Act的亮度设置为最亮(这个时候用户修改系统亮度是没法修改的)

//然后在刚才的监听里这

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值