Following code set phone to vibrate state, I want silent mode without vibration.
AudioManager am = (AudioManager) getSystemService(getApplicationContext().AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
Thanks in advance!
Following code set phone to vibrate state, I want silent mode without vibration.
AudioManager am = (AudioManager) getSystemService(getApplicationContext().AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_RING, 0, 0);
Thanks in advance!
You need to use an additional AudioManager method to silence the vibration. Add this after your original code:
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Full list of ringer modes can be found here: http://developer.android.com/reference/android/media/AudioManager.html#setRingerMode(int)
Here is my code
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
works fine when I use my nexus s with Gingerbread and IceCreamSandwich, I develop it with ICS, however recently I found it doesn't work with Jelly Bean, and getVibrateSetting
also doesn't work. Waiting for a better way