Wear のインプット メソッド エディタを作成する

Wear OS は、Android インプット メソッド エディタ(IME)フレームワークを拡張することで、音声以外の入力方法をサポートしています。IME フレームワークは仮想画面キーボードをサポートしており、ユーザーはキークリック、手書き入力、操作でテキストを入力できます。

Wear OS ユーザーは、リモート入力からさまざまな入力オプションを選択できます。たとえば、次のようなオプションがあります。

  • 音声入力
  • 絵文字
  • 返信定型文
  • スマート リプライ
  • デフォルトの IME
入力方法の例。
図 1. 入力方法の例。

Wear OS にはシステムのデフォルトの IME が用意されており、サードパーティのデベロッパーはカスタム IME を作成することもできます。Wear OS デバイスで使用される IME API は他のフォーム ファクタと同じですが、画面サイズが限られているため、使用方法が若干異なります。

このドキュメントでは、Wear OS 固有の IME の作成に役立つガイダンスを提供します。

Wear 向けの IME を作成する

Android プラットフォームは、IME を作成するための標準フレームワークを提供します。Wear OS 固有の IME を作成するには、ウェアラブルの限られた画面サイズに合わせて IME を最適化する必要があります。

Wear OS 固有の IME フィルタ

Wear OS 向けの IME を作成するには、ハンドセットのインプット メソッドを作成するガイドに沿って作成します。次に、以下のセクションの Google Play フィルタをマニフェスト ファイルに追加して、Wear OS 固有の IME を作成します。

API レベル

Wear OS 向けの IME を開発する場合は、この機能が Android 6.0(API レベル 23)以降でのみサポートされることに注意してください。音声以外の入力方法をサポートするウェアラブルにのみ IME をインストールできるようにするには、アプリの build.gradle.kts ファイルの minSdkVersion の値を 23 以上に設定します。

デバイスの機能セット

Wear OS IME をサポートしていないデバイス(iPhone など)からアプリを除外する方法を制御するには、アプリのマニフェストに次の行を追加します。

<uses-feature android:required="true" android:name="android.hardware.type.watch" />

IME を呼び出す

Wear OS ではユーザーがスマートウォッチの設定を行うことができ、インストールされている IME のリストから複数の IME を有効にすることができます。ユーザーが IME を有効にすると、RemoteInput API を使用している通知またはアプリから IME を呼び出せるようになります。

IME に関する一般的な考慮事項

Wear 向けの IME を実装する際は、以下の点を考慮してください。

  • デフォルトのアクションを設定する

    RemoteInput と Wear OS アプリは、1 行のテキスト入力のみを想定します。常に Enter キーを使用して sendDefaultEditorAction の呼び出しをトリガーします。これにより、アプリはキーボードを閉じて次のステップまたはアクションに進みます。

  • 全画面モードの IME を使用する

    Wear OS の IME は画面のほとんどを覆うため、アプリの大部分が非表示になります。全画面モードを使用すると、アプリの UI に関係なく、ユーザー エクスペリエンスが最適化されます。全画面モードでは、ExtractedText が編集対象のテキスト フィールドのミラーリング ビューを提供し、IME の他の UI と調和した書式設定が可能になります。全画面モードの詳細については、 InputMethodService をご覧ください。

  • InputType フラグを処理する

    プライバシー上の理由から、IME は少なくとも InputType フラグの TYPE_TEXT_VARIATION_PASSWORD を処理する必要があります。IME がパスワード モードの場合は、必ずキーボードが単一キー入力に最適化される(スペルの自動修正、予測入力、ジェスチャー入力が無効化される)ようにします。最も重要な点は、パスワード モードのキーボードは入力言語に関係なく American Standard Code for Information Interchange(ASCII)記号をサポートする必要があるということです。詳しくは、入力方法のタイプの指定をご覧ください。

  • 次の IME に切り替えるためのキーを指定します。

    Android では、プラットフォームでサポートされているすべての IME 間の切り替えをユーザーが行うことができます。IME の実装では、ブール値 supportsSwitchingToNextInputMethodtrue に設定します。これにより、IME で切り替えメカニズムがサポートされるため、アプリはプラットフォームでサポートされている次の IME に切り替えることができます。IME の切り替えを実装する方法については、IME サブタイプを切り替えるをご覧ください。