android之uiaotumation与instrumentation注入MotionEvent和KeyEvent事件

本文详细介绍了Android中MotionEvent与KeyEvent的主要事件类型,包括ACTION_DOWN、ACTION_MOVE、ACTION_UP、ACTION_CANCEL、ACTION_OUTSIDE等触摸事件类型及ACTION_UP、ACTION_DOWN等键盘事件类型,并探讨了如何通过UiAutomation类和Instrumentation类注入这些事件,以及它们在多点触控场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MotionEvent主要的事件类型有:

MotionEvent.ACTION_DOWN: 表示用户开始触摸.

MotionEvent.ACTION_MOVE: 表示用户在移动(手指或者其他)

MotionEvent.ACTION_UP:表示用户抬起了手指

MotionEvent.ACTION_CANCEL:表示手势被取消了,一些关于这个事件类型的讨论见:http://stackoverflow.com/questions/11960861/what-causes-a-motionevent-action-cancel-in-android

还有一个不常见的:

MotionEvent.ACTION_OUTSIDE: 表示用户触碰超出了正常的UI边界.

但是对于多点触控的支持,Android加入了以下一些事件类型.来处理,如另外有手指按下了,

有的手指抬起来了.等等:

MotionEvent.ACTION_POINTER_DOWN:有一个非主要的手指按下了.

MotionEvent.ACTION_POINTER_UP:一个非主要的手指抬起来了

UiAutomation类注入事件

evt.setSource(InputDevice.SOURCE_TOUCHSCREEN);

UiAutomation.injectInputEvent(evt, true);

Instrumentation类注入事件
Instrumentation.sendPointerSync(MotionEvent)


KeyEvent主要的事件类型有:

KeyEvent.ACTION_UP 表示用户抬起了手指

KeyEvent.ACTION_DOWN 表示用户开始按

KeyEvent.KEYCODE_SHIFT_LEFT 表示键盘shift开了

UiAutomation类注入事件

evt.setSource(InputDevice.SOURCE_KEYBOARD);

UiAutomation.injectInputEvent(evt, true);

Instrumentation类注入事件
Instrumentation.sendKeySync(KeyEvent)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值