防止在Android中使用屏幕

时间:2012-01-23 23:51:58

标签: android locking screen framebuffer

我对Android编程很陌生,但熟悉C / C ++和Linux,足以编写一些东西。在我的下一个项目中,我将在Android下运行一些本机应用程序(Linux应用程序)。

我正在调用的可执行文件是使用framebuffer设备来生成屏幕输出。当我尝试只调用程序时,程序的输出会丢失,因为Android正在重绘屏幕,从而覆盖了帧缓冲区。

为了防止这种情况,我制作了一个“存根”Android程序,它实际上没有窗口设计(只是一个黑屏),但调用我的程序。这在某种程度上是有效的;然而,每当我旋转屏幕,或者一些Tattoo通知出现时,Android重新绘制屏幕,​​我们又回到第1帧......

因此,我想知道是否存在“低级”API或其他东西,这可能会阻止Android完全使用屏幕,只要我发布它。不久,就像一个防止手机睡眠的WakeLock,我想要一个“锁定”,它将完全锁定屏幕(帧缓冲设备)。有谁知道我怎样才能实现这样的功能?

PS:这可能与SurfaceFlinger有关,但我在某处读过它不会将任何API发布到用户级别。

2 个答案:

答案 0 :(得分:1)

在Android上,屏幕属于SurfaceFlinger。

答案 1 :(得分:0)

  

我正在调用的可执行文件正在使用帧缓冲设备来生成屏幕输出。

不支持。

  

因此,我想知道是否存在低水平" API或其他东西,只要我发布它就可以阻止Android完全使用屏幕。

SDK或NDK级别不支持任何内容。欢迎您创建自己的自定义固件,随心所欲,并在自己的设备上加载自定义固件。

否则,请使用支持的方式与屏幕进行交互(例如,原生在C / C ++中的OpenGL)。