协议
键盘
在 fuchsia.ui.test.input/text.fidl 中定义
用于将键盘事件注入输入管道的工具。
请根据需要进行扩展。
SimulateKeyEvent
通过键盘输入报告模拟按键事件。
KeyboardInputReport 包含一个当前被按下的键的列表。该报告可以通过与之前收到的报告进行比较来反映键减少 / 增加的情况。
请求
名称 | 类型 |
---|---|
payload |
KeyboardSimulateKeyEventRequest
|
响应
<EMPTY>
SimulateUsAsciiTextEntry
模拟输入 text
所需的一组按键的输入,就像使用美式 QWERTY 键盘一样。
US ASCII 文本会映射到对应的按键操作。例如,a
会映射到美式 QWERTY 键盘上 a
键的按下和后续释放。此外,A
会映射到按下 Shift
键,随后按下并释放 a
。
为方便起见,\n
和 \t
会分别转换为 Enter
和 Tab
键。
请求
名称 | 类型 |
---|---|
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
发送按下按钮在设备上所请求的按钮上的矢量。传递空矢量将释放所有按下的按钮。
请求
名称 | 类型 |
---|---|
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
在事件之间注入短暂的显式延迟。
请求
名称 | 类型 |
---|---|
payload |
TouchScreenSimulateMultiFingerGestureRequest
|
响应
<EMPTY>
SimulateMultiTap
模拟在请求的位置用多指点按。
请求
名称 | 类型 |
---|---|
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 包含当前与触摸表面联系的联系人列表。该报告可以通过与之前收到的报告进行比较来表示多重触摸事件。
请求
名称 | 类型 |
---|---|
report |
fuchsia.input.report/TouchInputReport
|
响应
<EMPTY>
枚举
CoordinateUnit 柔性
类型:uint32
在 fuchsia.ui.test.input/registry.fidl 中定义
表示用于指定空间事件参数的单位(除非另有说明)。
名称 | 值 | 说明 |
---|---|---|
默认 |
0 |
物理屏幕映射到 x 轴和 y 轴上跨越 [-1000, 1000] 的坐标空间,其中正 x 向右扩展,正 y 向下扩展。 示例:(500, -500) 在默认坐标空间中会映射到物理屏幕右上角象限的中心。 |
PHYSICAL_PIXELS |
1 |
物理屏幕映射到跨度 (0, 0) - (显示宽度, 显示高度) 的坐标空间,其中正 x 向右扩展,正 y 向下扩展。 测试编写者应使用 请注意,此空间与物理屏幕的尺寸和方向都匹配,因此它不会镜像应用于场景图的任何旋转。 一般来说,测试编写器不应假设特定视图的逻辑坐标空间与物理坐标空间匹配, |
MouseButton 灵活
类型:uint32
在 fuchsia.ui.test.input/mouse.fidl 中定义
识别标准鼠标上的各种按钮。
名称 | 值 | 说明 |
---|---|---|
名字 |
0 |
“左”鼠标按钮。 |
秒 |
1 |
“右”鼠标按钮。 |
第三 |
2 |
“第三个”鼠标按钮。 |
MouseEventPhase灵活
类型:uint32
在 fuchsia.ui.test.input/mouse.fidl 中定义
标识鼠标事件的阶段。
名称 | 值 | 说明 |
---|---|---|
ADD |
0 |
观察器已开始跟踪鼠标。 |
HOVER |
1 |
自上次 ADD 事件以来,鼠标已移动,没有交替 DOWN 事件。 |
DOWN |
2 |
已按下一个或多个鼠标按钮。 |
移动 |
3 |
鼠标自上次 DOWN 事件后已移动。 |
UP |
4 |
已释放所有按下的按钮。 |
方向盘 |
5 |
操纵了鼠标滚轮。 |
表
KeyboardInputListenerReportTextInputRequest
在 fuchsia.ui.test.input/text.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
text |
string[1024]
|
报告者收到的文本输入的内容。 |
2 |
non_printable |
fuchsia.ui.input3/NonPrintableKey
|
报告者收到的不可打印的键。 添加日期:18
|
KeyboardSimulateKeyEventRequest
在 fuchsia.ui.test.input/text.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
report |
fuchsia.input.report/KeyboardInputReport
|
KeyboardSimulateUsAsciiTextEntryRequest
在 fuchsia.ui.test.input/text.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
text |
string[1024]
|
MediaButtonsDeviceSendButtonsStateRequest
在 fuchsia.ui.test.input/media_buttons.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
buttons |
vector<fuchsia.input.report/ConsumerControlButton>[255]
|
接收按钮按下动作的按钮。 |
MediaButtonsDeviceSimulateButtonPressRequest
在 fuchsia.ui.test.input/media_buttons.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
button |
fuchsia.input.report/ConsumerControlButton
|
接收按钮按下动作的按钮。 |
MouseInputListenerReportMouseInputRequest
在 fuchsia.ui.test.input/mouse.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
local_x |
float64
|
报告者坐标系中的水平坐标。 |
2 |
local_y |
float64
|
报告程序坐标系中的垂直坐标。 |
3 |
time_received |
zx/Time
|
客户端收到鼠标事件的单调时间 (ns)。 请注意,应谨慎使用此值。某些报告程序可能无法实现纳秒级精确度,但仍以纳秒级单位进行报告。 |
4 |
component_name |
string[1024]
|
组件的名称,有助于区分响应与多个组件。 注意:此名称独立于组件框架,因此报告程序和监听器可以自由地就任意值达成一致。 |
5 |
buttons |
vector<MouseButton>[32]
|
举报者收到的按下按钮。 |
6 |
phase |
MouseEventPhase
|
报告程序收到的鼠标事件的阶段。 |
7 |
device_pixel_ratio |
float64
|
报告程序知晓的设备像素比。 在转换为局部坐标时,某些报告程序可能会将此缩放比例考虑在内。 |
8 |
wheel_x_physical_pixel |
float64
|
水平滚轮滚动增量(以物理像素为单位)。 |
9 |
wheel_y_physical_pixel |
float64
|
垂直滚轮滚动增量(以物理像素为单位)。 |
MouseSimulateMouseEventRequest
在 fuchsia.ui.test.input/mouse.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
pressed_buttons |
vector<MouseButton>[32]
|
当前按下的一组按钮。 不得包含重复内容。 |
2 |
movement_x |
int64
|
相对 X 位置位移。 |
3 |
movement_y |
int64
|
相对 Y 位置位移。 |
4 |
scroll_v_detent |
int64
|
按定位点的相对垂直滚动位移。 |
5 |
scroll_h_detent |
int64
|
按定位点的相对水平滚动位移。 |
6 |
scroll_v_physical_pixel |
float64
|
按物理像素推荐的垂直滚动位移,通过加速器、定位点 / 毫米与像素比等计算得出。 |
7 |
scroll_h_physical_pixel |
float64
|
按物理像素建议的水平滚动位移,通过加速器、定位点 / 毫米与像素比等计算得出。 |
RegistryRegisterKeyboardRequest 资源
在 fuchsia.ui.test.input/registry.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
device |
server_end<Keyboard>
|
RegistryRegisterMediaButtonsDeviceRequest 资源
在 fuchsia.ui.test.input/registry.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
device |
server_end<MediaButtonsDevice>
|
RegistryRegisterMouseRequest 资源
在 fuchsia.ui.test.input/registry.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
device |
server_end<Mouse>
|
RegistryRegisterTouchScreenRequest 资源
在 fuchsia.ui.test.input/registry.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
device |
server_end<TouchScreen>
|
|
2 |
coordinate_unit |
CoordinateUnit
|
指示用于描述触摸事件的坐标空间。 添加:11
|
TouchInputListenerReportTouchInputRequest
在 fuchsia.ui.test.input/touch.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
local_x |
float64
|
报告者坐标系中的水平坐标。 |
2 |
local_y |
float64
|
报告者坐标系中的垂直坐标。 |
3 |
time_received |
zx/Time
|
报告程序收到指针数据的单调时间 (ns)。请注意,应谨慎使用此值。某些报告程序可能无法实现纳秒级精确度,但仍以纳秒级单位进行报告。 |
4 |
device_pixel_ratio |
float64
|
报告程序所报告的每个逻辑像素的物理像素数。 |
5 |
component_name |
string[1024]
|
组件的名称,有助于区分响应与多个组件。 注意:此名称独立于组件框架,因此报告程序和监听器可以自由地就任意值达成一致。 |
6 |
phase |
fuchsia.ui.pointer/EventPhase
|
触摸事件的阶段。 添加数量:12
|
7 |
pointer_id |
uint32
|
point_id 用于识别多点触控中的手指。每根手指在对 添加数量:12
|
TouchScreenSimulateMultiFingerGestureRequest
在 fuchsia.ui.test.input/touch.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
start_locations |
[10]
|
手势的起始位置(以注册期间指定的坐标单位表示)。 |
2 |
end_locations |
[10]
|
手势的结束位置,以注册期间指定的坐标单位表示。 |
3 |
move_event_count |
uint32
|
双指张合中的移动事件数量。 |
4 |
finger_count |
uint32
|
手指的数量,因为 添加日期:18
|
TouchScreenSimulateMultiTapRequest
在 fuchsia.ui.test.input/touch.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
tap_locations |
vector<fuchsia.math/Vec>[10]
|
点按事件的位置(以注册期间指定的坐标单位表示)。 |
TouchScreenSimulateSwipeRequest
在 fuchsia.ui.test.input/touch.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
start_location |
fuchsia.math/Vec
|
滑动的起始位置(以注册期间指定的坐标单位表示)。 |
2 |
end_location |
fuchsia.math/Vec
|
滑动的结束位置(以注册期间指定的坐标单位表示)。 |
3 |
move_event_count |
uint32
|
滑动中的移动事件的数量。 |
TouchScreenSimulateTapRequest
在 fuchsia.ui.test.input/touch.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
tap_location |
fuchsia.math/Vec
|
点按事件的位置(以注册期间指定的坐标单位表示)。 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_FINGERS |
10
|
uint8 |
添加数量:12
|
MOUSE_MAX_NUM_BUTTONS |
32
|
uint32 |
鼠标按钮数量上限的硬编码数量。将来,如果看到带有更多按钮的鼠标,这种情况应该会增加。 |