リモート クライアントから送信されたインテントを受信し、それらに応答して適切な KeyEvent を送信するインプット メソッド サービスを実装しようとしています。
私はinput method service
この方法で使用しています
private void keyDownUp(int keyEventCode)
{
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
のように送信KeyEvents
しSimple Sofykeyboard Sample
、ホームでは動作しActivities.
ますが、ダイアログまたはスピナーのメニューがフォアグラウンドにある場合は動作しません。
イベントは に送信されますparent activity behind the Dialog
。
インプットメソッドからハードウェアキーを使用するように、キーを送信してデバイスを制御する方法はありますか?
私がやろうとしていることについてのより良い説明:
リモートからデバイスを制御できるようにする入力方法を書いています。
クライアント(デスクトップPC上のJavaアプリケーション)にコマンド(「UP」など)を書き込み、デバイス上のサーバーsendBroadcast()
が情報とともにインテントを送信し、入力メソッドのレシーバーがそれを取得してkeyDownUpを呼び出します
通常は機能しますが、ダイアログを表示するアプリに移動すると、メソッドkeycode
はキーイベントを に送信しません。たとえば、[はい] または [いいえ] ボタンを選択しますが、.DPAD_UP key.
keyDownUp
dialog
activty
Dialog
ここで 私は同じ問題を抱えている人を見つけました...しかし答えはありません...