Android开发:在服务中改变屏幕亮度

4

现在我再次尝试。

我想要改变屏幕亮度。

我已经尝试过:

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.5F; // set 50% brightness
getWindow().setAttributes(layoutParams);

在activity中似乎可以工作,但当我在service中时,会出现getWindow()编译错误。

2个回答

5
一个服务无法以那种方式改变屏幕亮度。服务没有用户界面,因此它没有Window。 您可以尝试通过SCREEN_BRIGHTNESS系统设置在整个系统范围内更改亮度。我不知道这是否有效,因为我没有尝试过。 否则,请修改您的活动以更改它们的亮度。

但是我的服务每10分钟检查一次,我该如何使服务触发另一个类? - carefacerz
@carefacerz:你对于屏幕亮度“每10分钟检查一次”的可能目的是什么? - CommonsWare

0

您需要从服务启动一个活动,您只需要这样做:

Intent myIntent = new Intent(getBaseContext(), MyActivity.class);
getApplication().startActivity(myIntent);

其中MyActivity是您想要启动的活动。在该活动中,您可以放置更改窗口亮度的代码,它将起作用。

我在此处包含了完整的代码:https://dev59.com/umw15IYBdhLWcg3wSJzQ#9848456

如果还不清楚,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接