Android 从小部件刷新显示?

Android 从小部件刷新显示?,android,Android,我正试图通过小部件设置屏幕亮度。我们知道这是很容易做到的,因为很多小部件已经做到了这一点,但是如何 在一个服务中,我通过小部件调用,设置亮度: Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200); 除了不“刷新”屏幕以应用新设置外,它工作得很好。关闭和打开屏幕会刷新显示设置,因此我们知道代码是有效的 我也在一些网站上读到类似这样的东西会刷新屏幕,但我们不能使用它,因为

我正试图通过小部件设置屏幕亮度。我们知道这是很容易做到的,因为很多小部件已经做到了这一点,但是如何

在一个服务中,我通过小部件调用,设置亮度:

Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200);
除了不“刷新”屏幕以应用新设置外,它工作得很好。关闭和打开屏幕会刷新显示设置,因此我们知道代码是有效的

我也在一些网站上读到类似这样的东西会刷新屏幕,但我们不能使用它,因为我们在一个小部件中。小部件活动和服务无法使用getWindow

WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 100 / 100.0f;
getWindow().setAttributes(lp);
所有这些小部件(比如漂亮的小部件、电源控制、扩展控制等)是如何做到这一点的

更新:
另一张海报建议启动一个空活动并执行WindowManager刷新。这是可行的,但它会在一秒钟内出现一个丑陋的黑屏。由于其他小部件不这样做,因此必须有一种方法来防止丑陋的空白黑屏显示。

对于黑屏,在活动上设置一个主题,包含以下内容:

<style name="Theme.Transparent" parent="android:Theme"> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowBackground">@color/transparent</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:backgroundDimEnabled">false</item> 
</style>

真的
@彩色/透明
@空的
真的
真的
假的

感谢塞巴斯蒂安的回答,我已经在这里复制了它。

无耻地从


全部完成。

对于黑屏,在活动上设置一个主题,包含以下内容:true@color/transparent@null-true-false,效果非常好!你想在下面给大家一个答案吗?我用了你的主题,并把它放在我的清单上。这确实是一个很好的答案,但我有一个注意事项。而不是@color/transparent放置@android:color/transparent
android:theme="@android:style/Theme.Translucent.NoTitleBar"