2016-09-07 18 views
0

/dev/input/event1からキーイベントを取得できません。私はその出力からフィルタすることができるのは、イベントコード53と54からの絶対的なXとYのタッチ座標です。なぜ私のソフトキーボードに入力するとイベントコード1の出力がないのか混乱しています。どの重要なユーザーがどのくらいのプレッシャーをかけているかを知りたい私の問題を理解したいと思っています。/dev/input/event1からタッチスクリーンキーボードのキーイベントを取得できません

私は根っこのSamsung Galaxy S4を使用しています。

答えて

0

ソフトキーボードがそのように機能しないためです。それはOSの一部ではなく、そのアプリケーションです。キーボードアプリケーションにはタッチイベントが与えられ、メインアプリケーションに何が押されたかを伝えるためにjava関数が呼び出されます。プレス後、ハードウェアの入力チャンネルを一切通過しません。 OSは、どのキーがどこにあるかを知らない。

ほとんどのキーボードは、キーイベントを生成しません。これらのイベントは、commitTextを介して出力されたときに単語を生成します。

基本的に、あなたが望むようにしたいことはできません。 OSを変更することなく、どのキーが押されたかを知る唯一の方法は、InputMethodService(キーボード)のInputConnection処理コマンドの反対側にあることです。

+0

ガイドのための@Gabeありがとうございました。 InputConnectionのもう片方をどのようにするかを詳しく教えてください。私はあなたを取得しませんでした。実際に私がやりたいことは、何らかの形でキーイベントを取得するために既存のキーボードと接続することです。これは何とか可能ですか? :)ありがとうございました。 –

+0

ほとんどのキーボードはキーイベントをまったくやっていません。また、最悪の場合にのみキーボードイベントを実行します。ビューとソフトキーボードとの間の通信に使用されるAPIは、InputConnectionと呼ばれます。キーボード入力を受け付けるビューは、InputConnectionを作成し、フレームワークからの要求に応じてフレームワークに返します。 2つのアプリケーションは、そのオブジェクト上でIPC経由で直接通信します。彼らは伝統的なlinuxのキーボードイベントを通らず、物理的なキーだけでそれを行います。 –

関連する問題