如何将铃声音量设置为最小?

时间:2014-09-25 10:16:36

标签: android android-audiomanager

以下代码将手机设置为振动状态,我想要无振动的静音模式。

AudioManager am = (AudioManager) getSystemService(getApplicationContext().AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 0, 0);

提前致谢!

3 个答案:

答案 0 :(得分:2)

您需要使用额外的AudioManager方法来消除振动。在原始代码后添加:

am.setRingerMode(AudioManager.RINGER_MODE_SILENT);

可以在此处找到振铃模式的完整列表:http://developer.android.com/reference/android/media/AudioManager.html#setRingerMode(int)

答案 1 :(得分:0)

使用AudioManager可以控制媒体播放器的音量。

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

也来自MediaPlayer(但我没试过)

public void  setVolume  (float leftVolume, float rightVolume)

自:API Level 1

设置此播放器的音量。建议使用此API来平衡应用程序中音频流的输出。除非您正在编写用于控制用户设置的应用程序,否则应优先使用此API      setStreamVolume(int,int,int) 它设置特定类型的所有流的音量。请注意,传递的卷值是原始标量。 UI控件应该以对数方式进行缩放。

参数

leftVolume留下音量标量

rightVolume右卷标量

如果解决,请接受答案或投票

答案 2 :(得分:0)

这是我的代码

switch (position) {
     case 0:
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
           break;
     case 1:
         audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
           break;
    case 2:
         audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
          audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, 
             AudioManager.VIBRATE_SETTING_OFF);
           break;
     case 3:
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, 
            AudioManager.VIBRATE_SETTING_ON);
        break;
     }

setVibrateSetting使用我的nexus与Gingerbread和IceCreamSandwich工作正常,我用ICS开发它,但是最近我发现它不适用于Jelly Bean,getVibrateSetting也没有工作。等待更好的方式