在 Android 上模拟触摸屏事件

发布于 2024-12-09 19:55:23 字数 64 浏览 0 评论 0原文

后台进程或软键盘是否可以创建触摸事件并将其发送到屏幕,就像屏幕被实际触摸一样?

即模拟触摸屏事件。

Is it possible for a background process or softkeyboard to create touch events and send them to screen as if the screen was actually touched?

i.e. simulating touch screen events.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独难免 2024-12-16 19:55:23

SDK 附带了一个名为 Monkey 的工具,它会生成伪-用户事件的随机流,例如:

  • 单击、
  • 触摸、
  • 手势、
  • 许多系统级事件。

您可以使用 Monkey 以随机但可重复的方式对您正在开发的应用程序进行压力测试。

还有 monkeyrunner 工具,它提供了一个 API,用于编写控制程序来自 Android 代码外部的 Android 设备或模拟器。使用monkeyrunner,您可以编写一个Python 程序来安装Android 应用程序或测试包、运行它、向其发送击键、获取其用户界面的屏幕截图并将屏幕截图存储在工作站上。

There is a tool that comes with the SDK called Monkey which generates pseudo-random streams of user events such as:

  • clicks
  • touches
  • gestures
  • a number of system-level events.

You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.

There is also the monkeyrunner tool which provides an API for writing programs that control an Android device or emulator from outside of Android code. With monkeyrunner, you can write a Python program that installs an Android application or test package, runs it, sends keystrokes to it, takes screenshots of its user interface, and stores screenshots on the workstation.

ゞ记忆︶ㄣ 2024-12-16 19:55:23

对于按下按钮,您可以使用以下命令:

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,
                KeyEvent.KEYCODE_BACK));

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
                KeyEvent.KEYCODE_BACK));

可以在此处找到可用键码列表:
http://developer.android.com/reference/android/view/KeyEvent.html

对于触摸屏事件,您可以使用:

 dispatchTouchEvent(MotionEvent.obtain(
                    SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                    MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));

For button presses, you can use the following:

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,
                KeyEvent.KEYCODE_BACK));

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
                KeyEvent.KEYCODE_BACK));

A list of available keycodes can be found here:
http://developer.android.com/reference/android/view/KeyEvent.html

For touchscreen events, you can use:

 dispatchTouchEvent(MotionEvent.obtain(
                    SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                    MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文