Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ICS中的类型\系统\覆盖_Android_Android 4.0 Ice Cream Sandwich_Layoutparams_Android Windowmanager - Fatal编程技术网

Android ICS中的类型\系统\覆盖

Android ICS中的类型\系统\覆盖,android,android-4.0-ice-cream-sandwich,layoutparams,android-windowmanager,Android,Android 4.0 Ice Cream Sandwich,Layoutparams,Android Windowmanager,在Honeycomb中,我能够创建一个带有类型的系统覆盖,并在外部接收带有标志的触摸 现在ICS改变了一些事情。我仍然可以创建系统覆盖,但我无法接触 现在,我可以用TYPE_SYSTEM_ALERT和get touch创建相同的,但它只捕获touchevents,而不是像蜂巢一样传递它们 有什么想法吗 亲切的问候你所描述的一切都是真实的。这大概是为了加强安全,因为前者的行为是窃听攻击的来源。我最近写了一篇关于这一变化的文章 有什么想法吗 设置LayoutParams时,不要使用它们中的任何一个。

在Honeycomb中,我能够创建一个带有类型的系统覆盖,并在外部接收带有标志的触摸

现在ICS改变了一些事情。我仍然可以创建系统覆盖,但我无法接触

现在,我可以用TYPE_SYSTEM_ALERT和get touch创建相同的,但它只捕获touchevents,而不是像蜂巢一样传递它们

有什么想法吗


亲切的问候你所描述的一切都是真实的。这大概是为了加强安全,因为前者的行为是窃听攻击的来源。我最近写了一篇关于这一变化的文章

有什么想法吗


设置LayoutParams时,不要使用它们中的任何一个。

创建覆盖视图 将类型设置为
type\u SYSTEM\u OVERLAY

相反,将其设置为
键入\u PHONE

使用以下标志:

FLAG\u NOT\u TOUCH\u model

FLAG\u WATCH\u OUTSIDE\u TOUCH


FLAG\u NOT\u TOUCH\u MODAL
我刚刚在ICS Swipepad中找到了一个仍在使用的应用程序。它允许将每个应用程序从预定义点拖到屏幕中间,然后启动覆盖,所以一定有一个way@EdwinSchriek:该行为听起来与
TYPE_SYSTEM_ALERT
一致——通过点击系统警报启动的连续触摸事件将发送到该系统警报,而不是底层应用程序,这似乎是合理的。嗯,我想当时不可能,但我会继续查找。谢谢@Edwin Schriek,你能帮我解决我的问题吗?仅供参考,jawsware在这里有一个适用于ICS的完整示例应用程序:在4.2.X上无法捕获其中任何一个VEEW上的点击事件,但在Android的较低版本上效果很好。有什么建议吗?谢谢。这对我来说很有效——我有“TYPE_SYSTEM_OVERLAY”,我将它改为“TYPE_PHONE”,带有“FLAG_NOT_TOUCH_MODAL”,并将listener设置为“setOnTouchListener”,而不是“setOnClickListener”,以便在我的活动上方的弹出窗口以及下面的活动中接收触摸。在我的例子中,这是一个带有重叠窗口的默认系统来电通知。@kosiara,你能阻止主页按钮点击吗?@jawsware,你知道如何阻止主页按钮点击吗?