【问题标题】:Simulating Touch Screen Events on Android在 Android 上模拟触摸屏事件
【发布时间】:2011-10-13 16:28:23
【问题描述】:

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

即模拟触摸屏事件。

【问题讨论】:

  • 您是为了测试目的还是为了实际生产代码而这样做?

标签: android touch-event


【解决方案1】:

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

  • 点击次数
  • 触摸
  • 手势
  • 一些系统级事件。

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

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

【讨论】:

    【解决方案2】:

    对于按钮按下,您可以使用以下内容:

    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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多