如何检测Android中的屏幕亮度是否发生了变化? [英] How to detect if screen brightness has changed in Android?

查看:285
本文介绍了如何检测Android中的屏幕亮度是否发生了变化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我进行了广泛搜索,找不到类似的问题.

I have searched extensively and couldn't find a similar question.

我想知道是否有任何方法可以检测到何时更改了移动设备的屏幕亮度.

I would like to know if there is any way to detect when the screen brightness of a mobile device has been changed.

我已经尝试在应用启动时存储旧值,并使用 Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS); 进行比较以比较初始值和最终值屏幕亮度值,这不是一个好方法.

I have already tried to store the old value when the app starts and repeatedly check usingSettings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS); to compare the initial and final value of screen brightness , which is not a good way of doing so.

谢谢

该问题表明我已经尝试过使用 Settings.System.SCREEN_BRIGHTNESS 来获取当前屏幕值并定期检查屏幕亮度变化的解决方案.我正在寻找一种更有效的方法来进行这种操作.

This question states that I have already tried the solution of using Settings.System.SCREEN_BRIGHTNESS to get current screen values and periodically check for screen brightness changes. I am looking for a more efficient way of doing such an operation.

推荐答案

是的,有一种方法可以使用 ContentObserver :

yes, there is a way by using ContentObserver:

  • 代码:

  • code:

  // listen to the brightness system settings
  val contentObserver = object:ContentObserver(Handler())
  {
      override fun onChange(selfChange:Boolean)
      {
          // get system brightness level
          val brightnessAmount = Settings.System.getInt(
                  contentResolver,Settings.System.SCREEN_BRIGHTNESS,0)

          // do something...
      }
  }

  // register the brightness listener upon starting
  contentResolver.registerContentObserver(
          Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
          false,contentObserver)

  // .....

  // unregister the listener when we're done (e.g. activity destroyed)
  contentResolver.unregisterContentObserver(contentObserver)

其他有用的链接:

这篇关于如何检测Android中的屏幕亮度是否发生了变化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆