我想要设置亮度自动模式后的当前亮度级别。我更改了屏幕亮度,但没有收到更改后的亮度级别值。
我使用异步调用来接收已完成块中更改的亮度级别,但没有更改亮度级别,恰好屏幕亮度更改为自动级别。
// Auto mode Setting
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
// receive changed brightness level
int level = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, default);
首先,我设置了写入权限,我在MainUIThread中尝试了Async、RxJava、Coroutine、普通线程可运行,但我没有收到更改的亮度级别。
我希望在设置自动模式亮度后收到更改的亮度级别。
这个问题的解决方案
首先,您获得可变的当前亮度级别 int currentLevel = Settings.System.getInt(..., SCREEN_BRIGHTNESS);
second,设置明亮的自动模式 Settings.System.putInt(..., SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_AUTOMATIC);
三、设置automatic后对比currentLevel和bright level 线程睡眠 200 ~ 500 可能比较 但如果相同的值,数 5 ~ 10
线程.sleep(500); progressBar.setProgress(Settings.System.getInt(..., SCREEN_BRIGHTNESS));