我有一个Android应用程序可以将铃声音量调整到最大值,并在退出或按下主页按钮时恢复音量。这是代码的片段。
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()
启动(表示应用程序处于后台),它会将音量更改为最大值,并将其恢复为onPause()
中的上一个音量。
代码似乎还不错,但我好几天都没想到问题出在哪里,请帮助,谢谢!