inputd-cliによるデバイス入力のシミュレート
inputd-cliは、シミュレートされたユーザー入力とシステム制御を通じて、プログラムでFire TVデバイスやVega仮想デバイスを操作できるコマンドラインツールです。このツールは、物理的な操作なしにデバイスの動作を制御する必要がある自動テスト、デバイスデバッグ、および開発ワークフローに不可欠です。
主な機能
- 入力シミュレーション - ボタン押下、タッチイベント、スワイプ、マウス操作を送信します。
- テキスト入力 - テキスト文字列をデバイスに直接挿入します。
- 画面操作 - 画面サイズを取得し、ジェスチャーベースのナビゲーションを実行します。
- 自動化サポート - スクリプト作成とバッチ操作のためのコンソールモードを提供します。
前提条件
-
USBまたはTCP/IP経由でVDA接続を確立します。
TCP/IP経由のVDAの有効化のページにある手順を参照してください。
-
アクセスレベルに適したセキュリティ権限を取得します。
セキュリティコンテキストが異なれば、
inputd-cli機能へのアクセスレベルも異なります。現在の権限を確認して、環境で使用できるコマンドを確認してください。セキュリティコンテキスト 情報取得 入力自動化 app_user ○ × 開発モードシェル ○ ○ -
Fire TVデバイスで開発者モードを有効にします(推奨)。
開発者モードの構成のページにある説明を参照してください。
-
Vega仮想デバイスユーザーの場合、すべてのコマンドにアクセスできるように、開発者モードを有効にしてください。
a. 仮想デバイスシェルに接続します。
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シェルによるアクセス
このツールはFire TVデバイスシステムに組み込まれているため、別途インストールする必要はありません。inputd-cliには、VDAシェル環境からアクセスできます。
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 <テキスト> [--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
// 出力
Welcome to the Inputd command line!
Type 'h' or any valid command to continue.
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"
[Back] ボタンと [Menu] ボタンを3秒間押し続けてから、両方のボタンを放して終了します。
関連トピック
Last updated: 2025年10月7日

