Android:在 Window 下的任何应用程序中模拟触摸的后台服务
Android: Background Service to Simulate Touches in Any App Underneath a Window
我有一个 Service
可以在所有使用包含自定义 View
的 SYSTEM_ALERT_WINDOW
的应用程序之上绘制 Canvas
。
我的 Service
和自定义的 View
都实现了 View.OnTouchListener
Service 的 onTouch(View v, MotionEvent ev){}
方法 returns true
而自定义 View returns false
。这允许我在所有应用程序之上显示我的自定义 View
,并且仍然与底层 Activity
交互。这部分有效。
我还想让Service
在SYSTEM_ALERT_WINDOW
下方的当前Activity
的指定坐标中模拟触摸事件。
我希望我可以在自定义视图上调用 View.dispatchTouchEvent(...)
,因为 onTouch(...)
returns false
,触摸事件会传递到底层 Activity
。没用。
在这种情况下如何模拟任何Activity中的触摸事件?
我使用了以下来源的代码...
在所有应用程序之上画一个canvas:
http://www.piwai.info/chatheads-basics/
Draw an Android canvas on top of all applications?
将触摸传递给底层应用程序:
How can I interact with elements behind a translucent Android app?
模拟触摸:
How to simulate a touch event in Android?
AFAIK,出于明显的安全原因,您不能这样做,除非是在已获得 root 权限的设备上。甚至可访问性 API 也不支持此 AFAICT。允许任意应用伪造对其他应用的输入将是一个主要的安全漏洞。
如果您的 objective 要在测试期间执行此操作,仪器测试允许您在自己的应用程序中模拟触摸事件。
我有一个 Service
可以在所有使用包含自定义 View
的 SYSTEM_ALERT_WINDOW
的应用程序之上绘制 Canvas
。
我的 Service
和自定义的 View
都实现了 View.OnTouchListener
Service 的 onTouch(View v, MotionEvent ev){}
方法 returns true
而自定义 View returns false
。这允许我在所有应用程序之上显示我的自定义 View
,并且仍然与底层 Activity
交互。这部分有效。
我还想让Service
在SYSTEM_ALERT_WINDOW
下方的当前Activity
的指定坐标中模拟触摸事件。
我希望我可以在自定义视图上调用 View.dispatchTouchEvent(...)
,因为 onTouch(...)
returns false
,触摸事件会传递到底层 Activity
。没用。
在这种情况下如何模拟任何Activity中的触摸事件?
我使用了以下来源的代码...
在所有应用程序之上画一个canvas:
http://www.piwai.info/chatheads-basics/
Draw an Android canvas on top of all applications?
将触摸传递给底层应用程序:
How can I interact with elements behind a translucent Android app?
模拟触摸:
How to simulate a touch event in Android?
AFAIK,出于明显的安全原因,您不能这样做,除非是在已获得 root 权限的设备上。甚至可访问性 API 也不支持此 AFAICT。允许任意应用伪造对其他应用的输入将是一个主要的安全漏洞。
如果您的 objective 要在测试期间执行此操作,仪器测试允许您在自己的应用程序中模拟触摸事件。