すべてのプロダクト
Search
ドキュメントセンター

Cloud Phone:入力メソッドのベストプラクティス

最終更新日:Jan 20, 2026

イメージバージョン 25.07 以降、クラウドフォンはローカル入力メソッドをサポートしています。これにより、一部のシナリオではクラウドフォンに組み込まれた入力メソッドよりも優れたタイピング体験を提供できます。このガイドは、クラウドフォン (マトリックス版) に適用されます。

入力メソッドの比較

ローカル入力メソッドは、ご利用のローカルデバイスにインストールされます。このデバイスは、Alibaba Cloud Workspace クライアントを実行するか、SDK を使用してクラウドフォンの画面を表示します。ローカルデバイスで入力すると、テキストがクラウドフォンインスタンスに表示されます。

ローカル入力メソッドとクラウドフォンの組み込み入力メソッドにはそれぞれ長所と短所があり、異なるユースケースに適しています。以下の表で両者を比較します。

比較項目

クラウドフォン組み込み入力メソッド

ローカル入力メソッド

長所

  • 互換性:ほぼすべての Android 入力メソッドと互換性があります。

  • 安定性:入力メソッドはクラウド上で実行されます。ネットワークが不安定で接続が予期せず切断された場合でも、入力中のテキストが失われることはありません。

  • 一貫性:すべてのタスクで使い慣れたローカル入力メソッドを使用できます。入力ソースを頻繁に切り替える必要はありません。

  • 応答性:キーストローク、タッチ処理、入力予測、単語選択はすべてローカルデバイス上で行われます。これにより、ネットワーク遅延や接続の不安定さによるラグを防ぎます。

  • 利便性:Windows、iOS、または macOS オペレーティングシステムでは、Android 入力メソッドの代わりにネイティブの入力メソッドを使用できます。

  • 効率性:入力メソッドはローカルデバイスのリソースを使用します。クラウドインスタンスの計算能力は消費しません。これは、AI や音声認識入力メソッドなど、高い計算能力を必要とする入力メソッドに最適です。

短所

  • 応答性:固有のネットワーク遅延により、ローカルのタッチ入力やキーボード入力がクラウドインスタンスに送信される際にも遅延が発生します。これにより、ユーザーは動作の鈍さや入力ラグを感じることがあります。ネットワーク状態が悪い場合、この影響はさらに大きくなり、全体的な入力体験を著しく低下させる可能性があります。

  • 利便性:Windows、iOS、macOS などの Android 以外のプラットフォームを使用する場合、Android 入力メソッドを使用する必要があります。使い慣れた入力メソッドは使用できません。

  • 一貫性:タイピング体験に一貫性がありません。ローカルアプリケーションとクラウドフォンを頻繁に切り替える場合、ローカル入力メソッドとクラウドフォンの組み込み入力メソッドも切り替える必要があります。

  • 安定性:入力はローカルでバッファリングされ、完全な入力 (例:インプットメソッドエディター (IME) から単語が選択された後) が行われた後にのみクラウドサービスに送信されます。そのため、予期せぬネットワーク中断が発生すると、入力中の未確定のテキストが失われる可能性があります。

    説明

    この問題は、現在入力中のテキストにのみ影響します。すでに正常に送信されたコンテンツは影響を受けません。

  • 互換性:まれに、Android 標準の入力フレームワークを使用しないアプリケーションの場合、システムがクラウドフォンの組み込み入力メソッドに切り替わることがあります。

入力ソースの切り替え方法

以下のいずれかの方法で入力ソースを切り替えます。これらの方法は、クラウドフォン (マトリックス版) に適用されます。

ADB

初回有効化

クラウドフォンインスタンスを初めて作成する際に、組み込み入力メソッドを有効にします。

adb shell settings put secure enabled_input_methods "com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME:com.wuying.wyime/.PseudoImeService"
ローカル入力メソッドへの切り替え
adb shell ime set com.wuying.wyime/.PseudoImeService
クラウドフォン組み込み入力メソッドへの切り替え

この例では、プリインストール済みの Gboard 入力メソッドを使用します。他の入力メソッドにも同様の方法で切り替えます。

adb shell ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

Web SDK

説明

最新の SDK (ローカル入力メソッドを使用するため) とデモを入手してください。詳細については、「Web SDK」をご参照ください。

  1. 接続時に次のパラメーターを指定します。

    config.useCustomIme=true
  2. その後、通常の接続プロシージャに従います。詳細については、デモをご参照ください。

Android SDK

Android SDK でローカルのインプットメソッドエディター (IME) を有効にするには、StreamView が接続する前に ASP Engine からの接続ステータスコールバックをリッスンする必要があります。「接続成功」のコールバックを受け取ったら、そのコールバック内でローカル IME を有効状態に設定します。

説明

最新の SDK (ローカル入力メソッドを使用するため) とデモを入手してください。詳細については、「Android SDK」をご参照ください。

@Override
public void onCreate() {
    super.onCreate();
    IASPEngineListener listener = new IASPEngineListener() {
        @Override
        public void onConnectionSuccess(int connectionId) {
            mStreamView.getASPEngineDelegate().setImeType(ASPIMEType.ASP_IME_TYPE_LOCAL);
            mStreamView.shouldProactivelyShowIME(true);
        }
    
        /* 注:他のインターフェイスも実装する必要があります。 */
    }
    
    StreamView streamView = findViewById(R.id.stream_view);
    streamView.getASPEngineDelegate().registerASPEngineListener(listener);

    /* その他の onCreate プロシージャ */
}

Windows SDK

Windows には統一されたグラフィカルユーザーインターフェイス (GUI) アプリケーションフレームワークがありません。そのため、Windows SDK は基本的なステータスコールバックとアップストリームインターフェイスのみを提供します。統合時に、入力メソッドとの対話を処理する必要があります。

Windows でローカル入力メソッドを使用するには、次の手順に従います。

  1. AspIme オブジェクトを実装して、onImeFocusUpdate コールバックを受け入れます。

  2. AspClient を作成する際に、setAspIme を呼び出して AspIme オブジェクトを登録します。

  3. onImeFocusUpdate(true, false) が呼び出されたら、対応する UI フレームワークの入力メソッドロジックを呼び出します。

  4. onImeFocusUpdate(false, false) が呼び出されたら、対応する UI フレームワークの入力メソッドを非表示にします。

  5. 入力メソッドが文字を送信するときに、AspClient::setImeCommit メソッドを呼び出して入力を送信します。

GUI フレームワークが異なれば、入力メソッドと対話するためのインターフェイスも異なります。以下は、一般的なフレームワークのインターフェイスです。

  • Qt フレームワーク

    • 入力メソッドの呼び出し: setAttribute(Qt::WA_InputMethodEnabled, true);

    • 入力内容の取得: void inputMethodEvent(QInputMethodEvent *event) override; コールバックを使用します。

  • WPF フレームワーク

    • 入力メソッドの呼び出し: System.Windows.Interop.IKeyboardInputSink を実装します。

    • 入力内容の取得: public bool TranslateChar(ref MSG msg, ModifierKeys modifiers); を実装します。