有没有办法开发一个覆盖屏幕的一部分的应用程序,以阻止鬼/幻影触摸?

时间:2017-05-06 18:08:26

标签: android-4.4-kitkat

HTC Desire 510,Android 4.4.2 KitKat,由SuperSU植根,带Xposed Framework。

我知道有很多方法可以创建一个可以吸引其他应用的应用,但我还没有看到只吸引部分屏幕的应用。

这是我的问题的一些背景知识。

  1. 有一天,我的手机决定有鬼触问题
  2. 我启用了" Show Touches"在开发者选项中,我看到了所有  接触来自屏幕的右上角。
  3. 然后启用"显示指针位置"或类似的东西,我看到了  所有的接触都发生在X:370-380。
  4. 我已经看过一些我曾经使用过的应用程序,阻止了当前打开的应用程序的触摸,所以我想知道我是否可以将该区域缩小到大约三分之一的屏幕。如果我需要发送我的手机,我会,但我扎根了。我想我可以取消根它,但是对于另一个线程。我会尝试自己打开手机,但我可能会打破它。所以我试着和它一起生活并解决它。如果您需要更多信息,请在下面询问。

1 个答案:

答案 0 :(得分:0)

我不确定在游戏的情况下这是多么通用,但理论上你可以拦截任何给定活动的所有触摸事件并取消在给定坐标内发生的事件。

尝试拦截活动的dispatchTouchEvent方法。请注意,它会收到包含触摸坐标的MotionEvent。将这些坐标与您的范围匹配,如果应该忽略,则将dispatchTouchEvent方法return更改为true(消耗事件)。

由于可以覆盖dispatchTouchEvent方法,因此您可能需要检查是否在任何给定的Activity中声明了此方法。否则你的钩子可能不起作用。要拦截新活动,请检查this stackOverflow answer。在afterHookedMethod方法中,只需检查方法是否通过param.this.getClass().getDeclaredMethods声明(或使用getDeclaredMethod更具体)。如果定义了钩子,就像你为Activity类挂钩dispatchTouchEvent一样。

N.B:确保你不要多次挂钩相同的方法。