fuchsia.ui.test.input

添加次数:9

协议

键盘

fuchsia.ui.test.input/text.fidl 中定义

用于将键盘事件注入输入管道的工具。

请根据需要进行扩展。

SimulateKeyEvent

通过键盘输入报告模拟按键事件。

KeyboardInputReport 包含一个当前被按下的键的列表。该报告可以通过与之前收到的报告进行比较来反映键减少 / 增加的情况。

添加数量:16

请求

名称类型
payload KeyboardSimulateKeyEventRequest

响应

<EMPTY>

SimulateUsAsciiTextEntry

模拟输入 text 所需的一组按键的输入,就像使用美式 QWERTY 键盘一样。

US ASCII 文本会映射到对应的按键操作。例如,a 会映射到美式 QWERTY 键盘上 a 键的按下和后续释放。此外,A 会映射到按下 Shift 键,随后按下并释放 a

为方便起见,\n\t 会分别转换为 EnterTab 键。

请求

名称类型
payload KeyboardSimulateUsAsciiTextEntryRequest

响应

<EMPTY>

KeyboardInputListener

fuchsia.ui.test.input/text.fidl 中定义

客户端应用向相关方报告文本输入的工具(例如,测试夹具)。

注意:报告程序是此服务的客户端

规范用法适用于通过 fuchsia.ui.test.input.Keyboad 注入文本,并等待被测客户端报告已通过 fuchsia.ui.test.input.KeyboardInputListener 收到注入的文本的测试。

注意:此协议是通过 OOT 代码实现的。请使用版本控制功能更改此协议。

ReportReady

通知客户端已准备好接收文本输入。如果客户端需要完成设置才能继续测试,则应调用此方法,以便监听器能够等待,直到它们准备好继续进行测试。

请求

<EMPTY>

响应

<EMPTY>

ReportTextInput

通知监听器,监听由应用接收的一组按键事件生成的文本字符串。

请求

名称类型
payload KeyboardInputListenerReportTextInputRequest

MediaButtonsDevice

fuchsia.ui.test.input/media_buttons.fidl 中定义

用于将媒体按钮事件注入输入流水线的工具。

请根据需要进行扩展。

SendButtonsState

发送按下按钮在设备上所请求的按钮上的矢量。传递空矢量将释放所有按下的按钮。

添加数量:19

请求

名称类型
payload MediaButtonsDeviceSendButtonsStateRequest

响应

<EMPTY>

SimulateButtonPress

模拟在设备上所请求的按钮上按下和释放按钮。

请求

名称类型
payload MediaButtonsDeviceSimulateButtonPressRequest

响应

<EMPTY>

鼠标

fuchsia.ui.test.input/mouse.fidl 中定义

用于将鼠标事件注入输入管道的工具。

请根据需要进行扩展。

SimulateMouseEvent

注入与指定事件对应的输入报告。

注意:movement 参数的范围为 [-1000, 1000],scroll 参数的范围为 [-100, 100]。

请求

名称类型
payload MouseSimulateMouseEventRequest

响应

<EMPTY>

MouseInputListener

fuchsia.ui.test.input/mouse.fidl 中定义

供应用向相关方报告触控输入的工具(例如测试夹具)。

ReportMouseInput

报告被测组件已收到预期输入。

请求

名称类型
payload MouseInputListenerReportMouseInputRequest

注册类型

fuchsia.ui.test.input/registry.fidl 中定义

*** 此协议不得用于生产环境。***

使客户端可以注册虚构输入设备,此类设备可用于将输入事件直接注入输入流水线。

RegisterKeyboard

使客户端能够使用相应的客户端将键盘事件注入 device

客户端一次最多只能进行一个正在执行的调用。后续调用必须等到确认返回。违规会导致频道关闭。

即使 Registry 连接关闭,fuchsia.ui.test.input.Keyboard 通道也将保持打开状态。

请求

名称类型
payload RegistryRegisterKeyboardRequest

响应

<EMPTY>

RegisterMediaButtonsDevice

让客户端能够使用相应的客户端将媒体按钮事件注入 device

客户端一次最多只能进行一个正在执行的调用。后续调用必须等到确认返回。违规会导致频道关闭。

即使 Registry 连接关闭,fuchsia.ui.test.input.MediaButtonsDevice 通道也将保持打开状态。

请求

名称类型
payload RegistryRegisterMediaButtonsDeviceRequest

响应

<EMPTY>

RegisterMouse

使客户端能够使用相应的客户端将鼠标事件注入 device

客户端一次最多只能进行一个正在执行的调用。后续调用必须等到确认返回。违规会导致频道关闭。

即使 Registry 连接关闭,fuchsia.ui.test.input.Mouse 通道也将保持打开状态。

请求

名称类型
payload RegistryRegisterMouseRequest

响应

<EMPTY>

RegisterTouchScreen

使客户端能够使用相应的客户端将触摸事件注入 device

客户端一次最多只能进行一个正在执行的调用。后续调用必须等到确认返回。违规会导致频道关闭。

即使 Registry 连接关闭,fuchsia.ui.test.input.TouchScreen 通道也将保持打开状态。

请求

名称类型
payload RegistryRegisterTouchScreenRequest

响应

<EMPTY>

TouchInputListener

fuchsia.ui.test.input/touch.fidl 中定义

供应用向相关方报告触控输入的工具(例如测试夹具)。

ReportTouchInput

报告被测组件已收到预期输入。

请求

名称类型
payload TouchInputListenerReportTouchInputRequest

TouchScreen

fuchsia.ui.test.input/touch.fidl 中定义

用于将触摸事件注入输入管道的工具。

请根据需要进行扩展。

SimulateMultiFingerGesture

模拟从 start_locations 开始、在 end_locations 结束且移动事件总数等于 move_event_count 的多指线性手势。如果参数无效,服务器应关闭连接。

生成的指针事件流将如下所示:

DOWN + CHANGE_1 + ... + CHANGE_n + UP,其中 n == move_event_count

在事件之间注入短暂的显式延迟。

添加数量:12

请求

名称类型
payload TouchScreenSimulateMultiFingerGestureRequest

响应

<EMPTY>

SimulateMultiTap

模拟在请求的位置用多指点按。

添加数量:12

请求

名称类型
payload TouchScreenSimulateMultiTapRequest

响应

<EMPTY>

SimulateSwipe

模拟从 start_location 开始、到 end_location 结束的滑动,移动事件总数等于 move_event_count

生成的指针事件流将如下所示:

DOWN + CHANGE_1 + ... + CHANGE_n + UP,其中 n == move_event_count

注入事件时,事件之间没有明确的延迟;换言之,连续事件之间观察到的延迟时间将大致等于注入单个事件所需的时间。

请求

名称类型
payload TouchScreenSimulateSwipeRequest

响应

<EMPTY>

SimulateTap

模拟在请求的位置点按。

请求

名称类型
payload TouchScreenSimulateTapRequest

响应

<EMPTY>

SimulateTouchEvent

通过触摸输入报告模拟触摸事件。

TouchInputReport 包含当前与触摸表面联系的联系人列表。该报告可以通过与之前收到的报告进行比较来表示多重触摸事件。

添加数量:17

请求

名称类型
report fuchsia.input.report/TouchInputReport

响应

<EMPTY>

枚举

CoordinateUnit 柔性

类型:uint32

fuchsia.ui.test.input/registry.fidl 中定义

表示用于指定空间事件参数的单位(除非另有说明)。

添加:11

名称说明
0

物理屏幕映射到 x 轴和 y 轴上跨越 [-1000, 1000] 的坐标空间,其中正 x 向右扩展,正 y 向下扩展。

示例:(500, -500) 在默认坐标空间中会映射到物理屏幕右上角象限的中心。

1

物理屏幕映射到跨度 (0, 0) - (显示宽度, 显示高度) 的坐标空间,其中正 x 向右扩展,正 y 向下扩展。

测试编写者应使用 fuchsia.ui.display.singleton.Info 检索屏幕的物理尺寸。

请注意,此空间与物理屏幕的尺寸和方向都匹配,因此它不会镜像应用于场景图的任何旋转。

一般来说,测试编写器不应假设特定视图的逻辑坐标空间与物理坐标空间匹配,

MouseButton 灵活

类型:uint32

fuchsia.ui.test.input/mouse.fidl 中定义

识别标准鼠标上的各种按钮。

名称说明
0

“左”鼠标按钮。

1

“右”鼠标按钮。

2

“第三个”鼠标按钮。

MouseEventPhase灵活

类型:uint32

fuchsia.ui.test.input/mouse.fidl 中定义

标识鼠标事件的阶段。

名称说明
0

观察器已开始跟踪鼠标。

1

自上次 ADD 事件以来,鼠标已移动,没有交替 DOWN 事件。

2

已按下一个或多个鼠标按钮。

3

鼠标自上次 DOWN 事件后已移动。

4

已释放所有按下的按钮。

5

操纵了鼠标滚轮。

KeyboardInputListenerReportTextInputRequest

fuchsia.ui.test.input/text.fidl 中定义

序数野战类型说明
text string[1024]

报告者收到的文本输入的内容。

non_printable fuchsia.ui.input3/NonPrintableKey

报告者收到的不可打印的键。

添加日期:18

KeyboardSimulateKeyEventRequest

fuchsia.ui.test.input/text.fidl 中定义

序数野战类型说明
report fuchsia.input.report/KeyboardInputReport

KeyboardSimulateUsAsciiTextEntryRequest

fuchsia.ui.test.input/text.fidl 中定义

序数野战类型说明
text string[1024]

MediaButtonsDeviceSendButtonsStateRequest

fuchsia.ui.test.input/media_buttons.fidl 中定义

序数野战类型说明
buttons vector<fuchsia.input.report/ConsumerControlButton>[255]

接收按钮按下动作的按钮。

MediaButtonsDeviceSimulateButtonPressRequest

fuchsia.ui.test.input/media_buttons.fidl 中定义

序数野战类型说明
button fuchsia.input.report/ConsumerControlButton

接收按钮按下动作的按钮。

MouseInputListenerReportMouseInputRequest

fuchsia.ui.test.input/mouse.fidl 中定义

序数野战类型说明
local_x float64

报告者坐标系中的水平坐标。

local_y float64

报告程序坐标系中的垂直坐标。

time_received zx/Time

客户端收到鼠标事件的单调时间 (ns)。 请注意,应谨慎使用此值。某些报告程序可能无法实现纳秒级精确度,但仍以纳秒级单位进行报告。

component_name string[1024]

组件的名称,有助于区分响应与多个组件。

注意:此名称独立于组件框架,因此报告程序和监听器可以自由地就任意值达成一致。

buttons vector<MouseButton>[32]

举报者收到的按下按钮。

phase MouseEventPhase

报告程序收到的鼠标事件的阶段。

device_pixel_ratio float64

报告程序知晓的设备像素比。

在转换为局部坐标时,某些报告程序可能会将此缩放比例考虑在内。

wheel_x_physical_pixel float64

水平滚轮滚动增量(以物理像素为单位)。

wheel_y_physical_pixel float64

垂直滚轮滚动增量(以物理像素为单位)。

MouseSimulateMouseEventRequest

fuchsia.ui.test.input/mouse.fidl 中定义

序数野战类型说明
pressed_buttons vector<MouseButton>[32]

当前按下的一组按钮。 不得包含重复内容。

movement_x int64

相对 X 位置位移。

movement_y int64

相对 Y 位置位移。

scroll_v_detent int64

按定位点的相对垂直滚动位移。

scroll_h_detent int64

按定位点的相对水平滚动位移。

scroll_v_physical_pixel float64

按物理像素推荐的垂直滚动位移,通过加速器、定位点 / 毫米与像素比等计算得出。

scroll_h_physical_pixel float64

按物理像素建议的水平滚动位移,通过加速器、定位点 / 毫米与像素比等计算得出。

RegistryRegisterKeyboardRequest 资源

fuchsia.ui.test.input/registry.fidl 中定义

序数野战类型说明
device server_end<Keyboard>

RegistryRegisterMediaButtonsDeviceRequest 资源

fuchsia.ui.test.input/registry.fidl 中定义

序数野战类型说明
device server_end<MediaButtonsDevice>

RegistryRegisterMouseRequest 资源

fuchsia.ui.test.input/registry.fidl 中定义

序数野战类型说明
device server_end<Mouse>

RegistryRegisterTouchScreenRequest 资源

fuchsia.ui.test.input/registry.fidl 中定义

序数野战类型说明
device server_end<TouchScreen>
coordinate_unit CoordinateUnit

指示用于描述触摸事件的坐标空间。

添加:11

TouchInputListenerReportTouchInputRequest

fuchsia.ui.test.input/touch.fidl 中定义

序数野战类型说明
local_x float64

报告者坐标系中的水平坐标。

local_y float64

报告者坐标系中的垂直坐标。

time_received zx/Time

报告程序收到指针数据的单调时间 (ns)。请注意,应谨慎使用此值。某些报告程序可能无法实现纳秒级精确度,但仍以纳秒级单位进行报告。

device_pixel_ratio float64

报告程序所报告的每个逻辑像素的物理像素数。

component_name string[1024]

组件的名称,有助于区分响应与多个组件。

注意:此名称独立于组件框架,因此报告程序和监听器可以自由地就任意值达成一致。

phase fuchsia.ui.pointer/EventPhase

触摸事件的阶段。

添加数量:12
pointer_id uint32

point_id 用于识别多点触控中的手指。每根手指在对 ReportTouchInput() 的单独调用中发送,被调用方负责根据需要组装手指

添加数量:12

TouchScreenSimulateMultiFingerGestureRequest

fuchsia.ui.test.input/touch.fidl 中定义

序数野战类型说明
start_locations [10]

手势的起始位置(以注册期间指定的坐标单位表示)。

end_locations [10]

手势的结束位置,以注册期间指定的坐标单位表示。

move_event_count uint32

双指张合中的移动事件数量。

finger_count uint32

手指的数量,因为 array<fuchsia.math.Vec, MAX_FINGERS> 是固定的,我们使用此字段来了解手势的手指数量。

添加日期:18

TouchScreenSimulateMultiTapRequest

fuchsia.ui.test.input/touch.fidl 中定义

序数野战类型说明
tap_locations vector<fuchsia.math/Vec>[10]

点按事件的位置(以注册期间指定的坐标单位表示)。

TouchScreenSimulateSwipeRequest

fuchsia.ui.test.input/touch.fidl 中定义

序数野战类型说明
start_location fuchsia.math/Vec

滑动的起始位置(以注册期间指定的坐标单位表示)。

end_location fuchsia.math/Vec

滑动的结束位置(以注册期间指定的坐标单位表示)。

move_event_count uint32

滑动中的移动事件的数量。

TouchScreenSimulateTapRequest

fuchsia.ui.test.input/touch.fidl 中定义

序数野战类型说明
tap_location fuchsia.math/Vec

点按事件的位置(以注册期间指定的坐标单位表示)。

常量

名称类型说明
MAX_FINGERS 10 uint8
添加数量:12
MOUSE_MAX_NUM_BUTTONS 32 uint32

鼠标按钮数量上限的硬编码数量。将来,如果看到带有更多按钮的鼠标,这种情况应该会增加。