終了ボタンまたはホームボタンを押したときに呼び出し音量を最大に変更して音量を復元するAndroidアプリがあります。ここにコードのスニペットがあります。 Androidの場合、onCreate()では動作しませんが、onResume()に入ります
int ringMode;
int ringVolume;
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeRingtone();
}
@Override
protected void onResume() {
changeRingtone();
}
private void changeRingtone() {
ringVolume = audioManager.getStreamVolume(audioManager.STREAM_RING);
ringMode = audioManager.getRingerMode();
audioManager.setStreamVolume(audioManager.STREAM_RING,
audioManager.getStreamMaxVolume(audioManager.STREAM_RING),
AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}
@Override
protected void onPause() {
audioManager.setStreamVolume(audioManager.STREAM_RING, ringVolume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
audioManager.setRingerMode(ringMode);
super.onPause();
}
さて問題です、ときアプリ最初の起動(
onCreate()
が呼ばれる)、それが最大のボリュームを変更しますが、それは
onPause()
の前のボリュームに復元されません。ただし、アプリが
onResume()
(アプリがバックグラウンドであったことを意味する)によって開始された場合、ボリュームはmaxに変更され、前のボリュームに復元されます(
onPause()
)。
コードはうまくいくようですが、数日間問題がどこにあるのか分かりませんでした。ありがとうございました!公式Androidのトレーニングからthis記事を引用
ありがとうございます! – Andrew
あなたを助けてくれることは喜ばしいことでした:D – rockar06