4

volume_up/volume_down キーが押されたときにボリューム UI を非表示にする方法はありますか。ダイアログが表示されているときにトリガーされたときに動作しないように見えるアクティビティで実行できることを理解しています。

解決策はありますか?

4

2 に答える 2

7

これは Dialog クラスで動作するはずです:

AudioManager man = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
dialog.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                man.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_RAISE,
                    AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                man.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER,
                    AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
                return true;
           default:
                return super.onKeyDown(keyCode, event);
        }
    }
});

Androidのように: デバイスから音量変更バーを非表示にしますか?

于 2013-08-20T13:01:52.540 に答える
3

このコードを試してください。ボリュームのトースト メッセージを無効にする必要があります。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
        //Do something to hide the view
        AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
        manager.adjustVolume(AudioManager.ADJUST_LOWER, 0);
    }
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)){
        //Do something to hide the view
        AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
        manager.adjustVolume(AudioManager.ADJUST_RAISE, 0);
    }
    return true;
}
于 2013-08-20T12:46:02.160 に答える