在Android通知中播放声音,尽管手机已设置静音模式

在Android通知中播放声音,尽管手机已设置静音模式,android,audio,notifications,silent,Android,Audio,Notifications,Silent,我的应用程序正在显示通知,当显示通知时,会播放声音。但当我的手机处于“静音模式”时,通知不会播放。我想“覆盖”音量设置,并在设置了静音模式的情况下播放声音。有办法吗?使用此选项启用通知声音- AudioManager am; am= (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE); am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); Settings

我的应用程序正在显示通知,当显示通知时,会播放声音。但当我的手机处于“静音模式”时,通知不会播放。我想“覆盖”音量设置,并在设置了静音模式的情况下播放声音。有办法吗?

使用此选项启用通知声音-

AudioManager am;
am= (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1);
别忘了在舱单中给予许可-

Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1);
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

您好,您可以使用MediaPlayer作为通知声音,方法是启动一项服务,在显示通知时播放MediaPlayer

Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1);
要使声音停止,请停止通知挂起内容的BroadCastReceiver中的服务

Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1);

另外,当通知取消时,不要忘记停止声音。

如果您在重要会议中为手机设置静音模式,并且仍然从一个应用程序收到通知声音,您会高兴吗?这就是用户设置静音模式的原因。是的,因为我的应用程序将有这样一个选项:“虽然设置了静音模式,但仍播放声音”,所以用户可以使用或不使用此功能;)所以,唯一的解决办法是将模式更改为正常,播放通知声音,然后将静音模式设置回原来的状态。在某些情况下,您仍然希望覆盖此功能。例如,如果您想从蓝牙设备ping手机以找到它。那么,在100%的情况下,即使手机处于静音模式,您也会希望手机发出声音。谢谢您的回答。如何将其用于通知?在调用myNotificationManager.notify之前,是否应将振铃器模式设置为正常,然后再将其设置为静音?这是正确的方法吗?它不起作用:(我将模式设置为正常,然后显示通知,然后再次将其设置为静音,但没有声音…如果我没有将其设置为静音,声音播放…我知道NotificationManager.notify在显示通知时有一个回调来执行代码:(它是什么?与此相同?:AudioManager am;am=(AudioManager)getBaseContext().getSystemService(Context.AUDIO\u SERVICE);am.setRingerMode(AudioManager.RINGER\u MODE\u NORMAL);它将修改系统设置以播放通知的声音。如果它对您不起作用,请尝试不同的设置,如启用<代码>声音效果,<代码>音量通知,<代码>音量系统。有关详细列表,请参阅。-1:需要额外的权限,我认为用户不会乐意更改其设置。T这里有一些其他的方法来实现这一点,它们既不太老套,又能给用户带来更好的体验。我认为你的答案是一个很好的方法。我会试试,谢谢!
Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1);