我想知道如何阻止 Android 设备上的拨号、主页、返回和结束通话按钮。
我知道这是可能的,因为有一个应用程序:TheftAware 确实会阻止所有按钮,因此它们根本不起作用。
我还想知道如何制作一个对话框窗口或任何类型的窗口,无论如何它都会保持在顶部(这也是在theftaware中完成的)。
他们还能够阻止(隐藏)通话屏幕......有人知道他们是怎么做到的吗?
注意:这是否意味着 Android 并不那么安全?
我只是想在这里澄清一些信息。
BeRecursive 中的代码示例在某些方面是不正确的。正如已经指出的,它不会阻止主页按钮,但它还有其他问题:
为了消费该事件,所以
Android 框架的其余部分不会
采取行动,你需要返回true
来自onKeyDown
处理程序,not false
。合同是这样的true
表示处理的应用程序
活动和框架应该
不执行默认按键事件
处理。 (Praveen 的代码示例也有同样的问题)。
从Android 1.5及更高版本开始,
Android 框架移动了
动作激活来自onKeyDown
to onKeyUp
。所以你还需要
来实现阻塞onKeyUp
处理程序,而不仅仅是onKeyDown
处理程序。
可以阻止KeyEvent.KEYCODE_CALL
按钮使用
这种技术,但不是KeyEvent.KEYCODE_ENDCALL
按钮。
这似乎是为了安全
原因。
最后来说说设置技巧WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
就实际阻止任何硬件按钮而言对我没有任何影响。它对于抑制其他应用程序的弹出窗口可能很有用,但我还没有充分探索这一点。
Android 团队提供了很多有用的信息这篇博文.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)