我希望在没有root的手机条件下实现静音效果。
private AudioManager myAudioManager = null;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int ringerMode = myAudioManager.getRingerMode();
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
myAudioManager.setRingerMode(ringerMode);
我测试了上面的方法。它对一些手机有影响。而其他手机没有效果。为什么呢?
除此之外,还有什么其他方法可以静音?
答案 0 :(得分:1)
可能存在版本sdk问题。顺便说一下Android中有几个流,你想要静音吗?试试这段代码:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); // mute music stream
audioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0); // mute ring stream
if (Build.VERSION.SDK_INT >= 8) {
audioManager.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
audioManager.requestAudioFocus(null, AudioManager.STREAM_RING, AudioManager.AUDIOFOCUS_GAIN);
}