as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

inputd-cliによるデバイス入力のシミュレート

inputd-cliによるデバイス入力のシミュレート

inputd-cliは、シミュレートされたユーザー入力とシステム制御を通じて、プログラムでFire TVデバイスやVega仮想デバイスを操作できるコマンドラインツールです。このツールは、物理的な操作なしにデバイスの動作を制御する必要がある自動テスト、デバイスデバッグ、および開発ワークフローに不可欠です。

主な機能

  • 入力シミュレーション - ボタン押下、タッチイベント、スワイプ、マウス操作を送信します。
  • テキスト入力 - テキスト文字列をデバイスに直接挿入します。
  • 画面操作 - 画面サイズを取得し、ジェスチャーベースのナビゲーションを実行します。
  • 自動化サポート - スクリプト作成とバッチ操作のためのコンソールモードを提供します。

前提条件

  1. USBまたはTCP/IP経由でVDA接続を確立します。

    TCP/IP経由のVDAの有効化のページにある手順を参照してください。

  2. アクセスレベルに適したセキュリティ権限を取得します。

    セキュリティコンテキストが異なれば、inputd-cli 機能へのアクセスレベルも異なります。現在の権限を確認して、環境で使用できるコマンドを確認してください。

    セキュリティコンテキスト 情報取得 入力自動化
    app_user ×
    開発モードシェル
  3. Fire TVデバイスで開発者モードを有効にします(推奨)。

    開発者モードの構成のページにある説明を参照してください。

  4. Vega仮想デバイスユーザーの場合、すべてのコマンドにアクセスできるように、開発者モードを有効にしてください。

    a. 仮想デバイスシェルに接続します。

    クリップボードにコピーしました。

    kepler device shell -d VirtualDevice
    

    b. 開発者モードを有効にします。

    クリップボードにコピーしました。

    vsm developer-mode enable
    

    デフォルト(制限付き)モードでは、get_camera_cover_open_close、get_mic_state、get_screen_sizeコマンドのみが表示されます。

    開発者モード(全機能)では、touch、swipe、button_press、send_textなど、すべてのコマンドが表示されます。

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

コンソールモードの使用

毎回再接続せずに複数のコマンドの持続的接続を確立するには、以下を使用します。

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日