【问题标题】:Android: Turn off screen from a serviceAndroid:从服务中关闭屏幕
【发布时间】:2011-05-06 21:27:39
【问题描述】:

我想弄清楚如何从服务中关闭屏幕。我已经阅读了this,但我没有意识到如何从服务中做到这一点。我真的不想处理唤醒锁,因为一旦屏幕关闭,我并不真正关心通过 java 代码将其转回。我只需要一种一次性关闭屏幕的方法,并且我一直在寻找这个方法。

【问题讨论】:

    标签: android service android-activity screen


    【解决方案1】:

    我看到两个选项:

    (1) 创建一个虚拟Activity,并通过getWindow();方法使用它来获取一个Window对象。然后您将使用Intent 将屏幕从您的Service 中调用。

    (2) 使用IHardwareService.Stub。不是 SDK 的一部分,但这篇博文中有一个解决方法:http://www.tutorialforandroid.com/2009/01/changing-screen-brightness.html

    顺便说一句:我强烈推荐第一个选项。您永远不知道不属于 SDK 的类何时会更改。

    【讨论】:

    • 虚拟活动,您的意思是只创建一个活动而不使用 XML 膨胀吗?这可能吗?
    • @Semper 是的。但想想更好,如果你只关心关闭屏幕,一个完全黑色的活动应该做同样的伎俩。当然,除非您想关闭 设备,但这是另一个问题。
    • 我明天会调查并与您联系。 Whowoudaevarthunk...黑色活动:)
    • 所以,我得到了它的工作。我创建了一个透明活动并在 3 秒内将亮度降低到 0,因为这是您可以设置的最快超时。有什么办法可以克服这个问题而不必作为系统应用程序签名?它在技术上有效,但我需要立即关闭,而不是在 3 秒内淡出。 3 秒有点太长了。
    • 用上面的方法可以唤醒屏幕吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多