Notification with sound although phone is muted?

Total Post:29

Points:203
 1220  View(s)
Ratings:
Rate this:

I am creating a notification with Android's NotificationManager.

Is it possible to 'override' the phone's volume (mute) settings in such a way, that the notification's sound is ALWAYS played?

The reason I need this is the following: The notification is so important, that vibration alone may not be enough. The user MUST be alerted. So a sound shall be played, even if the phone is muted or the volume is very low.

  1. Post:194

    Points:1396
    Re: Notification with sound although phone is muted?

    yes it is possible.


    MediaPlayer mMediaPlayer;
    Uri notification = null;
    notification = RingtoneManager
                    .getDefaultUri(RingtoneManager.TYPE_ALARM);
    mMediaPlayer = new MediaPlayer();
            mMediaPlayer.setDataSource(ctx, notification);
            // mMediaPlayer = MediaPlayer.create(ctx, notification);
            final AudioManager audioManager = (AudioManager) ctx
                    .getSystemService(Context.AUDIO_SERVICE);
            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
            mMediaPlayer.prepare();
            // mMediaPlayer.start();
            mMediaPlayer.setLooping(true);
            mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
                public void onPrepared(MediaPlayer arg0) {
                    mMediaPlayer.seekTo(0);
                    mMediaPlayer.start();
                }
            });

      Modified On Apr-06-2018 12:14:46 AM
  1. Post:36

    Points:260
    Re: Notification with sound although phone is muted?

    You can change RINGING mode like this from silent to normal.

    AudioManager mobilemode = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            mobilemode.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

            // Turn on all sound
            // turn on sound, enable notifications
            mobilemode.setStreamMute(AudioManager.STREAM_SYSTEM, false);
            //notifications
            mobilemode.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
            //alarm
            mobilemode.setStreamMute(AudioManager.STREAM_ALARM, false);
            //ringer
            mobilemode.setStreamMute(AudioManager.STREAM_RING, false);
            //media
            mobilemode.setStreamMute(AudioManager.STREAM_MUSIC, false);

            // Turn off all sound
            // turn off sound, disable notifications
            mobilemode.setStreamMute(AudioManager.STREAM_SYSTEM, true);
            //notifications
            mobilemode.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
            //alarm
            mobilemode.setStreamMute(AudioManager.STREAM_ALARM, true);
            //ringer
            mobilemode.setStreamMute(AudioManager.STREAM_RING, true);
            //media
            mobilemode.setStreamMute(AudioManager.STREAM_MUSIC, true);

    FOR YOUR CASE YOU CAN TRY SOMETHING LIKE THIS

    int previousNotificationVolume =mobilemode.getStreamVolume(AudioManager.STREAM_NOTIFICATION);
            mobilemode.setStreamVolume(AudioManager.STREAM_NOTIFICATION,mobilemode.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION), 0);
            // Play notification sound
            // Set notification sound to its previous 
            mobilemode.setStreamVolume(AudioManager.STREAM_NOTIFICATION,previousNotificationVolume, 0);

      Modified On Apr-06-2018 12:15:42 AM

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!