2010-12-04 16 views
2

私はAndroidのプログラムを開発してユーザーのテキスト入力を分析し、入力速度、エラー率、平均キー入力を測定して1文字を入力します。こうすることで、さまざまな入力方法の特性を比較できます。これを行うには、テキスト入力プロセス中にユーザーが行ったすべてのキー入力をカウントして記録する必要があります。Android Dev:画面上の(ソフトな)キーボードからキーイベントを取得する

たとえば、基本的なQWERTYキーボードを使用するユーザーは、各文字に少なくとも1つのキーを押す必要があります。しかし、単語補完機能を備えたキーボードを使用するユーザーは、より少ないキーを押す必要があります。しかし、どのくらい多くのキーを押す(平均して)のですか?単語補完は実際にタイピング速度を向上させますか?これらは私のプログラムが答えに役立つ質問です。

他の投稿を読んで、(デフォルトでは)画面上のキーボードはすべてのキー入力に対してキーイベントを送信しないことを知っています。物理(ハードウェア)キーボードは機能しますが、ほとんどのモバイルデバイスには物理キーボードはありません。 EditTextフィールドに文字が入力されたことを検出するTextWatcherを実装できることも知っています。ただし、一部のIMEでは、ユーザーが1文字(または単語)を入力するために一連のキーを押す必要があります。中間のキーイベントを処理する必要があります(キーの押下をカウントしてロギングする)。

私の質問:IMEのユーザーエクスペリエンス(たとえば、自動補完、単語予測、T9曖昧さ回避など)を変更せずに、IMEからのすべてのキープレスイベント(入力された文字をトリガーしないイベントさえも)をキャプチャするにはどうすればよいですか? )?これも可能ですか?

お時間をいただきありがとうございます。

答えて

0

これも可能ですか?

独自のIME、AFAIKを作成するか、またはソースを既存のIMEにインポートしてインストールするだけです。

+0

私は恐れていました。あなたのご意見ありがとうございます。 – StevenC

0

TouchEventさんはおねがいしますか?
ViewクラスからonKeyPreIme()を使用しようとしましたか?これはIMEで消費される前にキーを押すことができます

関連する問題