Search code examples
androidandroid-permissionsvolumemute

Android mute/unmute phone


My goal is to support 2 operations:

  • mute phone (possibly with vibrations enabled/disabled), so when a call or sms is received it won't make noise

  • unmute phone and restore the volume to the state before muting phone

How can I do this? What permissions are required in AndroidManifest?


Solution

  • This is the permission for vibrate into the manifest file

    <uses-permission android:name="android.permission.VIBRATE" />
    

    this is for to put the device in silent mode with vibrate

    AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    

    this is for to put into the ringing mode

    AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
    
    audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    audioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume, AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);