当前位置:  开发笔记 > 编程语言 > 正文

在android中调用隐藏的API来关闭屏幕

如何解决《在android中调用隐藏的API来关闭屏幕》经验,为你挑选了1个好方法。

我正在考虑使用隐藏的api在我的应用程序中关闭屏幕.
setScreenState来自https://android.googlesource.com/platform/frameworks/base/+/eclair-release/core/java/android/os/Power.java做我想要的,但它是一个隐藏的API.这是否意味着我不应该使用它?我认为它是一个相当稳定的API.
目前,我将屏幕超时设置为1毫秒,然后在屏幕关闭后重置超时.然而,android忽略1毫秒,而关闭它需要大约3秒,有时它完全忽略它并且不会关闭.
有什么建议?



1> mylock..:

这就是我为解决屏幕睡眠问题所做的工作.您可以在活动窗口中执行此操作.我将这个自定义锁屏活动的睡眠超时时间减少到5秒.您可以在我的项目页面上查看我的所有来源,但这里是关于在机器人上关闭屏幕的相关部分.

public void setBright(float value) {
    Window mywindow = getWindow();
    WindowManager.LayoutParams lp = mywindow.getAttributes();
    lp.screenBrightness = value;
    mywindow.setAttributes(lp);
}

//call this task to turn off the screen in a fadeout.


class Task implements Runnable {
    public void run() {                
        if (bright != 0) {
            setBright(bright/100); //start at 10% bright and go to 0 (screen off)
            bright--;
            serviceHandler.postDelayed(myTask, 100L);
        } else {
            setBright((float) 0.0); 
            bright = 10;//put bright back
        }
    }
}

我使用处理程序任务作为方法的测试,当我在第一次构建中从onBackPressed调用它时它工作.现在,我只是在onCreate上将活动setBright设置为0.0.这使得即使我的用户通过意外的音量键按下唤醒CPU,屏幕也不会实际打开.当我希望屏幕继续时,我将键事件调用setBright设置为大于0的值(1.0表示最大亮度).我很幸运,这适用于我的自定义锁屏活动.我发现更改文字亮度系统设置不会像这样工作,并且不会关闭屏幕.

在我的项目上查看我的其他来源svn http://code.google.com/p/mylockforandroid/source/checkout

您认为让Android团队添加支持以关闭屏幕或定义屏幕是否应该通过Lock mediator替换来唤醒,类似于您如何编程替代Home Launcher应用程序,这有多难?

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有