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