java 如何在Android中设置亮度自动模式后收听亮度值?

hrirmatl  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(138)

我想在设置亮度自动模式后获得当前亮度级别。我更改了屏幕亮度,但没有收到更改后的亮度级别值。
我使用异步调用接收已完成块中更改的亮度级别,但没有更改亮度级别,确切地说,屏幕亮度更改为自动级别。

// 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);

首先,我设置了写权限,并尝试了Async、RxJava、Coroutine、MainUIThread中可运行的正常线程,但我没有收到更改的亮度级别。
我希望在设置自动模式亮度后收到更改的亮度级别。

j2cgzkjk

j2cgzkjk1#

此问题解决方案
首先,获取可变的当前亮度等级int currentLevel = Settings.System.getInt(...,SCREEN_BRIGHTNESS);
第二,设置明亮自动模式设置。系统输入(...,屏幕亮度模式,屏幕亮度自动);
第三,设置自动线程休眠后比较currentLevel和brightlevel 200 ~ 500可能比较,但如果相同值,计数5 ~ 10
线程休眠(500);进度条.设置进度(设置.系统.getInt(...,屏幕亮度));

相关问题