当前位置: 代码迷 >> Android >> Android 兑现静音的几种技术
  详细解决方案

Android 兑现静音的几种技术

热度:36   发布时间:2016-05-01 11:00:38.0
Android 实现静音的几种技术?
前提是手机未root 的情况下,要想实现静音的效果。


private AudioManager myAudioManager = null;

        myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

        int ringerMode  = myAudioManager.getRingerMode();  //记录用户先前的声音模式

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);//设置静音

        myAudioManager.setRingerMode(ringerMode); //恢复之前的声音模式 



以上这种方法实际测试了一下,在拍照的时候,有的手机上有效,有的无效,请问是为什么?

除此之外还有什么别的静音方式没?

------解决方案--------------------
有可能是 sdk 版本的问题,在 Android 中有很多 streams,你希望哪个静音?
试一下下面的代码:

 
  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);
    }




 
  相关解决方案