4

アプリが開いている限り、ユーザーがデバイスの音量を変更できないようにするにはどうすればよいですか?可能であれば。

AudioMangerで音量をミュートに設定できることがわかりました。

AudioManager volumeControl = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
volumeControl.setStreamMute(AudioManager.STREAM_MUSIC, true);

しかし、これは私が探しているものではありません。ユーザーがアプリケーションに入って現在の音量をロックし、それを変更できないようにしたいのですが、バックグラウンドでメロディーが再生されて音量が上がっています。(これが、ユーザーに音量を制御させたくない理由です)

音量を上げるキー、音量を下げるキーを上書きする可能性があるかどうかを考えていましたか?[戻る]ボタンを上書きできるのと同じように。

4

1 に答える 1

7

ボリュームアップ、ボリュームダウンキーを無効にする可能性があるかどうか考えていましたか? 戻るボタンをオーバーライドできるように。

はい、同じように処理できます。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
        //Nothing
    }
    return true;
}

@sarnold 目覚まし時計のユースケースを見ることができます。多くの人は、目覚まし時計のこの機能を使用して、目覚めたいときに音をオフにしないようにしたいと考えています。

いずれにせよ、このようなことを行うユーザーを困らせる可能性があることに注意してください。可能であれば避けるべきです。

編集:音量の設定

    AudioManager am =  (AudioManager) getSystemService(AUDIO_SERVICE); 
    am.setStreamVolume(AudioManager.STREAM_MUSIC,6,0);
于 2012-05-28T23:14:52.923 に答える