如何将触摸事件发送到特定应用?! 我找到了一些技巧,但设备必须扎根!
有些应用可以执行此操作,并且不需要系统权限或root设备!
没人知道这是怎么回事?!
答案 0 :(得分:1)
如果我理解得很好,那么您正在寻找的是能够从应用程序B调用应用程序A中的onClick方法。
如果您编写了这两个应用程序,则可以绕过应用程序A,在通过intent执行onClick方法时创建参数。因此,当你从B中调用A时,你会在意图中引入额外的信息。
如果该应用程序属于其他方,则需要执行生根工作,请注意,如果您未在清单中声明该活动,则可以从其他活动中调用方法...
答案 1 :(得分:0)
如果您可以使用USB连接线连接,则可以使用MonkeyRunner或ADB commands执行此操作。
例如,使用使用MonkeyRunner的Jython脚本,您可以输入这样的触摸事件(从文档中稍作修改):
#! /usr/bin/env monkeyrunner
import java
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connect and start application
device = MonkeyRunner.waitForConnection()
device.installPackage('myproject/bin/MyApplication.apk')
package = 'com.example.android.myapplication'
activity = 'com.example.android.myapplication.MainActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
# Touch and drag
x, y = 100,100
duration = 0.5
numsteps = 20
device.touch(x, y, DOWN)
device.drag((x,y), (x+10,y+20), duration, numsteps)
使用ADB,这更容易adb shell input tap x y
顺便说一下,看起来this StackOverflow question有您正在寻找的ADB示例,以防适用于您。