前提是手机未root 的情况下,要想实现静音的效果。
private AudioManager myAudioManager = null; myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int ringerMode = myAudioManager.getRingerMode(); //记录用户先前的声音模式 myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);//设置静音 myAudioManager.setRingerMode(ringerMode); //恢复之前的声音模式 以上这种方法实际测试了一下,在拍照的时候,有的手机上有效,有的无效,请问是为什么?除此之外还有什么别的静音方式没?
private AudioManager myAudioManager = null; myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int ringerMode = myAudioManager.getRingerMode(); //记录用户先前的声音模式 myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);//设置静音 myAudioManager.setRingerMode(ringerMode); //恢复之前的声音模式 以上这种方法实际测试了一下,在拍照的时候,有的手机上有效,有的无效,请问是为什么?除此之外还有什么别的静音方式没?
试一下下面的代码: 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);
}