使用inputd-cli模拟设备输入
inputd-cli是一个命令行工具,使您能够通过模拟用户输入和系统控制以编程方式与Fire TV设备和Vega虚拟设备进行交互。该工具对于自动测试、设备调试和开发工作流程至关重要,在这些工作流程中,您需要在没有物理交互的情况下控制设备行为。
关键功能。
- 输入模拟 - 发送按下按钮、触摸事件、滑动和鼠标交互
- 文本输入 - 将文本字符串直接注入设备
- 屏幕交互 - 检索屏幕尺寸并执行基于手势的导航
- 自动化支持 - 为脚本和批处理操作提供控制台模式
先决条件
-
通过USB或TCP/IP建立VDA连接。
请参阅通过TCP/IP启用VDA页面中的说明。
-
为您的访问级别获取相应的安全权限。
不同的安全上下文提供不同级别的
inputd-cli功能访问权限。检查您的当前权限以了解您的环境中有哪些命令可用。安全上下文 获取信息 输入自动化 app_user 是 否 开发模式shell 是 是 -
在Fire TV设备上启用开发者模式(推荐)。
请参阅配置开发者模式页面中的说明。
-
对于Vega虚拟设备用户,启用开发者模式以获得完整命令访问权限:
a. 连接到虚拟设备shell:
kepler device shell -d VirtualDeviceb. 启用开发者模式:
vsm developer-mode enable默认(受限)模式仅显示:get_camera_cover_open_close、get_mic_state、get_screen_size
开发者模式(完整功能)显示所有命令:touch、swipe、button_press、send_text 等。
inputd-cli命令在Vega虚拟设备上返回“Arguments did not match expected patterns”(参数与预期模式不匹配)错误。通过VDA shell进行访问
该工具内置于Fire TV设备系统,无需单独安装。您可以通过VDA shell环境访问inputd-cli:
vda shell inputd-cli --help
示例:(注意:界面显示内容均为英文,此处中文译文仅供参考)
vda shell inputd-cli -h
inputd cli
用法:
inputd-cli start
inputd-cli button_press <按键> ([short|long|superLong|repeat]|--holdDuration <持续时间>)
inputd-cli touch <x> <y> [<x2>] [<y2>] [<x3>] [<y3>] [<x4>] [<y4>]
inputd-cli swipe <x_start> <y_start> <x_end> <y_end> [<x_start2>] [<y_start2>] [<x_end2>] [<y_end2>] [<x_start3>] [<y_start3>] [<x_end3>] [<y_end3>] [<x_start4>] [<y_start4>] [<x_end4>] [<y_end4>] [--interval <时间间隔>] [--delay-release]
inputd-cli gesture_swipe_down <x> <y> [--distance <像素距离>]
inputd-cli gesture_swipe_up <x> <y> [--distance <像素距离>]
inputd-cli gesture_swipe_left <x> <y> [--distance <像素距离>]
inputd-cli gesture_swipe_right <x> <y> [--distance <像素距离>]
inputd-cli mouse_move <x> <y>
inputd-cli mouse_click <x> <y> [<按钮>]
inputd-cli mouse_button_press [<按钮>]
inputd-cli get_camera_cover_state [--deprecated]
inputd-cli get_camera_cover_open_close
inputd-cli get_mic_state
inputd-cli get_client_list
inputd-cli send_text <text> [--interval <时间间隔>]
inputd-cli get_screen_size
选项:
-h --help 显示使用情况
--version 显示版本
--interval <时间间隔> 每次动作之间的时间间隔,单位为微秒[默认: 对于swipe为20000 ,对于send_text为100]
--delay-release 延迟释放滑动手势以实现可预测的滚动距离
--distance <像素距离> 移动的距离,以像素为单位[默认: 130]
--holdDuration <持续时间> 按下向下按钮和向上按钮之间的持续时间,以毫秒为单位
<按钮> 要按下的鼠标按钮 [默认: "BTN_LEFT"]
密钥代码参考
您可以在linux-event-codes.h处找到密钥代码列表。
要发送按下返回键的操作,可运行以下命令:
vda shell inputd-cli button_press KEY_BACK
常用导航键: KEY_DOWN、KEY_UP、KEY_ENTER、KEY_LEFT、KEY_RIGHT。
要发送文本输入,可运行以下命令:
vda shell inputd-cli send_text 'hello\ world\!'
更改隐私状态
要在软件级别控制Fire TV设备上的摄像头和麦克风隐私设置,可使用以下命令:
vda shell inputd-cli set_mic_state disabled
inputd-cli可以启用硬件隐私模式,但无法将其禁用。如果您的自动化功能在硬件级别禁用了麦克风,则必须在设备上手动重新启用它。使用控制台模式
要为多个命令建立永久连接而不每次都重新连接,可使用以下命令:
vda shell inputd-cli start
// 输出
欢迎使用Inputd命令行!
请键入'h'或任何有效命令继续。
inputd-cli >
用法示例:
inputd-cli > h
inputd cli
用法:
button_press <按键> ([short|long|superLong|repeat]|holdDuration <持续时间>)
button_hold <按键>
button_release <按键>
touch <x> <y>
touch_hold <x> <y>
touch_release
swipe <x1> <y1> <x2> <y2> [interval <时间间隔>]
gesture_swipe_down <x> <y> [distance <像素距离>]
gesture_swipe_up <x> <y> [distance <像素距离>]
gesture_swipe_left <x> <y> [distance <像素距离>]
gesture_swipe_right <x> <y> [distance <像素距离>]
mouse_move <x> <y>
mouse_click <x> <y> [<按钮>]
mouse_button_press [<按钮>]
mouse_button_hold [<按钮>]
mouse_button_release [<按钮>]
get_camera_cover_state
get_mic_state
set_priority <值>
set_permission_level <值>
get_client_list
send_text <文本>
get_screen_size
选项:
h, help 输出使用情况信息
v, version 输出版本信息
x, exit Ctrl + C的替代方法
interval <时间间隔> 每次动作之间的时间间隔,单位为微秒[默认: 20000]
distance <像素距离> 移动的距离,以像素为单位 [默认: 130]
holdDuration <持续时间> 按下向下按钮和向上按钮之间的持续时间,以毫秒为单位
<按钮> 要按下的鼠标按钮 [默认: "BTN_LEFT"]
使用脚本自动输入
为避免创建多个客户端连接,请将命令链接在一起。例如,要按住按钮并重复按下按钮,可使用以下命令:
vda shell "{ echo -e "button_hold KEY_LEFT"; sleep 0.5; for i in {1..30}; do echo -e "button_press KEY_DOWN"; sleep 0.5; done; echo -e "button_release KEY_LEFT"; echo exit; } | inputd-cli start"
此示例按住向左按钮,每0.5秒按下30次向下按钮(总计15秒),然后松开向左键并退出。
同时按下多个按钮
要模拟同时按下多个按钮的操作,请按住这些按钮,等待片刻,然后松开。例如:
vda shell "{ echo -e "button_hold KEY_BACK"; echo -e "button_hold KEY_MENU"; sleep 3; echo -e "button_release KEY_BACK"; echo -e "button_release KEY_MENU"; echo exit; } | inputd-cli start"
这将按住返回和 菜单按钮3秒钟,然后松开这两个按钮并退出。
相关主题
Last updated: 2025年10月7日

