1

Androidフォンの「音量」ボタンを再定義したいと思います。たとえば、増加または減少を押すと、音量は変化しませんが、単語を印刷するだけです。

4

2 に答える 2

2

次のように dispatchKeyEvent() メソッドをオーバーライドする必要があります。

  @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        int action = event.getAction();
        int keyCode = event.getKeyCode();
            switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (action == KeyEvent.ACTION_UP) {
                    //TODO
                    Toast.makeText(this,"Your First Word",Toast.LENGTH_SHORT).show();
                }
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (action == KeyEvent.ACTION_DOWN) {
                    //TODO
                    Toast.makeText(this,"Your Second Word",Toast.LENGTH_SHORT).show();
                }
                return true;
            default:
                return super.dispatchKeyEvent(event);
            }
        }
于 2012-05-28T15:11:03.767 に答える
2

次のように OnKeyDown メソッドをオーバーライドするだけです。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
       //Do whatever you want to do on Volume Up
       return true;
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
       //Do whatever you want to do on Volume Down
       return true
    }
    return false;
}

PROTIP: 1 つのアクティビティだけでなく、すべてのアクティビティでこの動作が必要な場合は、MainActivity.java (または任意の名前) でこれを行い、他のすべてのアクティビティを MainActivity に拡張します。

PROTIP 2: 絶対に必要で、そのように動作することをユーザーに通知しない限り、これを行わないでください。Android ユーザーは通常、アプリ間で動作が共通していないと不満を漏らします。

于 2012-05-28T14:59:25.693 に答える