Vir*_*ani 2 python android touch adb
我正在尝试模拟从 adb 到我的 Android 设备的点击和滑动手势。我尝试从 Windows 命令提示符运行以下
adb shell input tap 500 500命令adb shell input touchscreen tap 500 500。它给了我以下错误,
java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
at android.os.Parcel.createException(Parcel.java:2074)
at android.os.Parcel.readException(Parcel.java:2042)
at android.os.Parcel.readException(Parcel.java:1990)
at android.hardware.input.IInputManager$Stub$Proxy.injectInputEvent(IInputManager.java:925)
at android.hardware.input.InputManager.injectInputEvent(InputManager.java:886)
at com.android.commands.input.Input.injectMotionEvent(Input.java:428)
at com.android.commands.input.Input.access$200(Input.java:41)
at com.android.commands.input.Input$InputTap.sendTap(Input.java:224)
at com.android.commands.input.Input$InputTap.run(Input.java:218)
at com.android.commands.input.Input.onRun(Input.java:108)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:56)
at com.android.commands.input.Input.main(Input.java:71)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:380)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.input.InputManagerService.injectInputEventInternal(InputManagerService.java:732)
at com.android.server.input.InputManagerService.injectInputEvent(InputManagerService.java:706)
at android.hardware.input.IInputManager$Stub.onTransact(IInputManager.java:422)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
Run Code Online (Sandbox Code Playgroud)
我还尝试使用pure-python-adb包从 python 脚本执行相同的命令。以下是我执行的脚本。
from ppadb.client import Client
adb = Client()
devices = adb.devices()
if len(devices) == 0:
print("No devices attached")
quit()
device = devices[0]
print(device)
device.shell('input touchscreen tap 700 1453')
Run Code Online (Sandbox Code Playgroud)
我得到以下输出,设备上没有注意到任何点击,并且脚本中没有错误。
<ppadb.device.Device object at 0x02B30E50>
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了什么(可能在 Android 的开发人员选项设置中)?
我在 Windows 10 机器上使用 adb 版本 1.0.41。并通过 USB 使用搭载 Android 10 (Android Q) 的 Android 设备。