Wear OS は、Android インプット メソッド エディタ(IME)フレームワークを拡張することで、音声以外の入力方法をサポートしています。IME フレームワークは仮想画面キーボードをサポートしており、ユーザーはキークリック、手書き入力、操作でテキストを入力できます。
Wear OS ユーザーは、リモート入力からさまざまな入力オプションを選択できます。たとえば、次のようなオプションがあります。
- 音声入力
- 絵文字
- 返信定型文
- スマート リプライ
- デフォルトの IME
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 の実装では、ブール値
supportsSwitchingToNextInputMethodをtrueに設定します。これにより、IME で切り替えメカニズムがサポートされるため、アプリはプラットフォームでサポートされている次の IME に切り替えることができます。IME の切り替えを実装する方法については、IME サブタイプを切り替えるをご覧ください。