【发布时间】:2015-02-27 07:14:36
【问题描述】:
我有一个集成了音乐播放器的应用。我不希望音乐被来电打断。
我为此使用以下功能:
public static void updateDoNotDisturbMode(boolean enabled, boolean checkPrefs)
{
...
AudioManager audioManager = ((AudioManager) MainApp.get().getSystemService(Context.AUDIO_SERVICE));
NotificationManager notificationManager = (NotificationManager) MainApp.get().getSystemService(Context.NOTIFICATION_SERVICE);
// audioManager.setMode(AudioManager.MODE_IN_CALL);
if (!enabled)
{
audioManager.setStreamSolo(AudioManager.STREAM_MUSIC, false);
audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, false);
audioManager.setStreamMute(AudioManager.STREAM_RING, false);
audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
...
}
else
{
audioManager.setStreamSolo(AudioManager.STREAM_MUSIC, true);
audioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, true);
audioManager.setStreamMute(AudioManager.STREAM_RING, true);
audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
...
}
}
什么有效
- 如果没有连接耳机,手机静音
- 如果有人来电,内部音乐播放器会不间断地播放
- 所以没有连接耳机,一切正常
什么不起作用
- 如果连接了耳机,标准的哔声会中断我的音乐播放器并在耳机中播放
如何避免来电打断我的音乐播放器,即使已连接耳机?
目标 SDK
仅 4.2 及以上...(包括 5)
【问题讨论】:
-
在您的应用程序启动时以编程方式设置静音配置文件,并在关闭时将其启用为一般,即使连接耳机也能正常工作。
-
尝试使用仅振动配置文件...这样,它肯定不起作用...顺便说一句。我真的很想最多使用仅振动配置文件...如果找不到任何解决方案,我会再试一次...但我认为,我不是 100% 确定,即使静音配置文件也无法解决耳机问题...
-
但我敢肯定,一旦我做了同样的事情,现在我没有资源,如果我得到资源,我会给你一个解决办法!
-
谢谢。我会在晚上试试看你的建议。无论如何,手动将配置文件设置为静音应该足以测试它我认为......但我会尝试它
-
在您的设备中播放音乐并将您的个人资料设置为静音,连接耳机,并在您的设备上通过其他设备拨打电话,即使您的音乐停止,您的手机也不会响铃。
标签: android android-audiomanager