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

解决方案 »

  1.   

    有可能是 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);
        }