0

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!

Matjaž
  • 2,096
  • 3
  • 35
  • 55

2 Answers2

2

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)

Peter
  • 540
  • 3
  • 12
0

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

HurkanSeyhan
  • 374
  • 2
  • 3
  • 14
Yogesh
  • 1
  • 1