2011-09-21 5 views
5

、私は次のコードを使用してボリューム上の長押しにまで反応するように私のアプリを取得しようとしているが機能していないボリュームonKeyLongPressを()キャッチしようボリュームダウンのイベントはonKeyPress()onKeyLongPress()は呼び出されません。私の意図は、音量を下げてから「短く」押すだけで、私のアプリは長い音量の音量とは異なった反応をします。
誰かが私が行方不明を指摘できますか?

答えて

12

あなたはほぼそこにいます。 onKeyPressハンドラで同じキーイベントを検出して、それを追跡して、長いプレスが機能するようにする必要があります。ここに必要なコードは次のとおりです。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 
     event.startTracking(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

このキーイベントをAndroidボリュームマネージャーでさらに引き継ぎ、オーディオを変更することができますか? – Radu

+1

@Radu:テストされていませんが、 "return true;あなたの長いプレスコールバックで?伝播を防止する必要があります。しかし、再び、これが本当にうまくいくかどうかは分かりません。 –

+0

@BenjaminPietteよろしいですか – Lukas1