1

サービスからソフトキーボードを開く (切り替える、設定する) 方法は?

私のアプリケーションはアクティビティで構成されていません。しかし、エイリアンアプリケーションが画面に表示されているときに、サービスのトリガーでソフトキーボードを開こうとします。InputMethodManagerのメソッドで見つけましたsetInputMethod。2 番目の引数はキーボードの ID です。私はそれを知っている。しかし、最初の引数はIBinder. アプリケーションの IBinder 引数とは何ですか?

詳細を追加:

私のアプリケーションは と で構成されServiceていInputMethodServiceます。

サービス中 - システム内のアプリケーションの開始を分析しています。でInputMethodService- 私のソフトキーボード (IME)。私のサービスで何が適切なアプリケーションを開始するかを判断した場合 (私はこのアプリケーションを所有していません)、現在のsoftkeyboard状態を InputMethodService の IME に切り替える必要があります。切り替えるだけで、キーボードは開きません。また、ユーザーがクライアント アプリケーションで編集可能なビューをタップすると、システムがソフト キーボードを開きます。

4

1 に答える 1

0

私のソリューションコードService:

    ((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).setInputMethod( null, myInputMethodId);
    ((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).toggleSoftInputFromWindow( null, 1, 0);

ps これは、アプリケーションがシステムの場合にのみ機能nullします (最初の引数はsetInputMethod、アプリケーションがシステムの場合にのみ使用できます)。アプリのシステム権限をプログラムで取得します( https://stackoverflow.com/a/14257161/1665964mv /data/app/myapp.apk /system/app/myapp.apkに基づく)。

于 2013-01-17T12:41:04.647 に答える