gpt4 book ai didi

android - 以编程方式更改屏幕亮度(与电源小部件一样)

转载 作者:IT老高 更新时间:2023-10-28 21:54:18 24 4
gpt4 key购买 nike

我正在搜索如何以编程方式更改屏幕亮度,结果发现 this这是一个非常好的解决方案,效果很好,但它仅在我的应用程序处于 Activity 状态时才有效。在我的应用程序关闭后,亮度将恢复为与我启动应用程序之前相同的值。

我希望能够像按下电源小部件中的亮度按钮一样更改亮度。在来自 android 的电源小部件中,有 3 种状态。一个很亮,一个很暗,一个介于两者之间。是否可以像按下这个小部件一样改变亮度?

enter image description here

编辑1:我创建了这个并在 list 中添加了权限,但是当应用程序启动时,我看不到亮度有任何变化,我尝试了 10 和 100,现在使用 200 但没有变化有什么建议吗?

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
android.provider.Settings.System.putInt(this.getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, 200);
}

最佳答案

这是我发现工作的完整代码:

Settings.System.putInt(this.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, 20);

WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness =0.2f;// 100 / 100.0f;
getWindow().setAttributes(lp);

startActivity(new Intent(this,RefreshScreen.class));

我的问题中的代码不起作用,因为屏幕没有刷新。因此,刷新屏幕的一个技巧是启动虚拟 Activity ,然后在创建该虚拟 Activity 以调用 finish() 以使亮度的变化生效。

关于android - 以编程方式更改屏幕亮度(与电源小部件一样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com