以下代码将手机设置为振动状态,我想要无振动的静音模式。
AudioManager am = (AudioManager) getSystemService(getApplicationContext().AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
提前致谢!
答案 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
也没有工作。等待更好的方式