如何通过 Jetpack Compose 中的应用程序控制设备屏幕的亮度?

问题描述 投票:0回答:1

我正在制作一个简单的应用程序,我希望当我按下按钮时,设备的亮度设置为最大,当我再次按下它时,它会恢复到之前的状态。但我在互联网上找不到如何做到这一点,我已经尝试了多种方法,但无法使其工作。

android android-jetpack-compose screen device brightness
1个回答
0
投票

这是改变亮度的方法

@Composable
fun UpdateBrightness() {
    val context = LocalContext.current
    DisposableEffect(Unit) {
        setBrightness(context, isFull = true)
        onDispose {
            setBrightness(context, isFull = false)
        }
    }
}

fun setBrightness(context: Context, isFull: Boolean) {
    val activity = context as? Activity ?: return
    val layoutParams: WindowManager.LayoutParams = activity.window.attributes
    layoutParams.screenBrightness = if (isFull) 1f else WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
    activity.window.attributes = layoutParams
}
@Composable
fun MyScreen() {
    UpdateBrightness() // Set maximum brightness by default
    ...
}

代码取自这篇文章:https://medium.com/@yhdista/change-the-brightness-for-the-screen-thinking-in-compose-84378dce3b6c

© www.soinside.com 2019 - 2024. All rights reserved.