android documentationによると、キーのリリースを検出するのと同じくらい簡単でなければなりません:Android:キーボードのプレスリリースイベントの検出方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("pressed");
event.startTracking();
return true;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
System.out.println("released");
return true;
}
が、それを実装しようとすると、期待どおり、それは動作しませんが。
ブルートゥースキーボードのキーが押されたことを検出し、そのときにonKeyDownを1回だけ受信し、同じキーが離されたときに検出する必要があります。私は何か間違っているのですか、あるいはこの希望の結果を得るための他の方法がありますか?
押すと、任意のキーを押したまま、私は、コンソール上で繰り返し、これを取得する:
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
感謝を。
"期待どおりに機能しません" - あなたが期待していることとあなたが得ている結果について詳しく説明したい場合があります。たとえば、「押されている間に多くの通話があります」と正確には何ですか? – CommonsWare
私はキーを押して、それを押し続けると、繰り返します:I/System.out:押され、I/System.out:解放されます。私はそれを押したときに一度「押した」ことを期待し、それを解放すると「解放」する代わりに、「押された」と「解放された」は、任意のキーを押している間に繰り返し呼び出される... – RodrigoFranco
両方のメソッドから 'false'を返します。 – CommonsWare