NOTIFICATION WITH SOUND ALTHOUGH PHONE IS MUTED?

Pawan Shukla

Total Post:29

Points:203
Posted by  Pawan Shukla
 997  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. Kamlakar Singh

    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();

                }

            });

  1. Pawan Shukla

    Post:38

    Points:274
    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);

Answer

NEWSLETTER

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