1

所以,早些时候我发布了一个关于从服务接收触摸事件的问题(显然没有人知道答案)。

在试图自己弄清楚几个小时后,我放弃了,决定给一个名为 RubberBigPepper 的开发人员发电子邮件。我问他他是如何在他的应用程序音量控制中做到这一点的,他立即回复“ TYPE_SYSTEM_ALERT 窗口”。

这是什么意思,如何在代码中实现?

编辑:

我使用了以下方法:

getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

并且窗口无法接收触摸事件。

我也给他发了电子邮件,他说:“使用 WindowService 添加你的窗口”

4

1 回答 1

1

我使用这样的代码。

int nFlags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;       
             m_cWM=(WindowManager)getSystemService(Context.WINDOW_SERVICE);
             WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
                nFlags,
                PixelFormat.TRANSLUCENT);
m_cWM.addView(YourViewClass, lp);

不要忘记使用权限

于 2012-07-04T06:13:08.570 回答