Уведомление со звуком, хотя телефон отключен

Я создаю уведомление с помощью NotificationManager от Android.

Возможно ли «переопределить» настройки громкости телефона (без звука) таким образом, чтобы звук уведомления воспроизводился ВСЕГДА?

Причина, по которой мне это нужно, следующая: уведомление настолько важно, что одной вибрации может быть недостаточно. Пользователь ДОЛЖЕН быть предупрежден. Поэтому звук воспроизводится, даже если телефон отключен или громкость очень низкая.

Да, это возможно,

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

Вы можете изменить режим RINGING следующим образом: от молчания до нормального

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

ДЛЯ ВАШЕГО ДЕЛА ВЫ МОЖЕТЕ ПОПРОБУЙТЕ ЧТО-НИБУДЬ ЭТО

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