如何将触摸事件发送到android中的特定应用程序

时间:2014-11-08 13:28:09

标签: android touch

如何将触摸事件发送到特定应用?! 我找到了一些技巧,但设备必须扎根!

有些应用可以执行此操作,并且不需要系统权限或root设备!

没人知道这是怎么回事?!

2 个答案:

答案 0 :(得分:1)

如果我理解得很好,那么您正在寻找的是能够从应用程序B调用应用程序A中的onClick方法。

如果您编写了这两个应用程序,则可以绕过应用程序A,在通过intent执行onClick方法时创建参数。因此,当你从B中调用A时,你会在意图中引入额外的信息。

如果该应用程序属于其他方,则需要执行生根工作,请注意,如果您未在清单中声明该活动,则可以从其他活动中调用方法...

答案 1 :(得分:0)

如果您可以使用USB连接线连接,则可以使用MonkeyRunnerADB 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示例,以防适用于您。