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

标签 android screen brightness screen-brightness

我正在搜索如何以编程方式更改屏幕亮度,结果发现 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/

相关文章:

Android 2.1蓝牙SPP转LM058(串口线更换)问题

安卓动态微调器

html内容不适应不同的屏幕尺寸

iOS 屏幕镜像显示所选应用程序的过扫描边界

iPhone 亮度私有(private) API 无法正常工作

javascript - 在黑暗环境中使用屏幕的方法

java - 如何在 android 中的 Tab 旁边放置一个按钮? (与UI相关)

java - Android:如何获取绘制路径的区域大小?

我从 Playstore 下载后,Flutter android 应用程序卡在白屏中

java - 传入JFrame改变亮度?