如何检测 android 中的亮度变化?

how can I detect change in brightness in android?

我正在尝试开发一个简单的应用程序,可以监控当前屏幕亮度值并在用户更改亮度时更新该值。

这是我获取当前亮度的代码。

try {
    float curBrightnessValue=android.provider.Settings.System.getInt(
        getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
        System.out.println(curBrightnessValue);
} catch (Settings.SettingNotFoundException e) {
    e.printStackTrace();
}

但我正在努力更新值。 如何在亮度发生变化时更新值?

这可以帮助你:

ContentObserver contentObserver = new ContentObserver(new Handler()) {
  @Override
  public void onChange(boolean selfChange) {
    int a = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 0);
    Log.d("MainActivity", "Brightness value: "+ a);
  }
};
getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
    false, contentObserver);

附加回调以在内容更改时接收更改