【问题标题】:Do Not Disturb mode - always silent incoming calls请勿打扰模式 - 来电始终静音
【发布时间】: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


【解决方案1】:

集成音乐播放器是什么意思?音乐应用的代码可以改吗?

播放器停止播放,因为它监听 PhoneStateChanges - void onCallEvent(int state, String number);
如果您可以更改播放器的代码,您应该在此方法中检查是否开启静音模式 - 如果是,则不要停止播放。

如果您无法更改播放器的代码 - 您可以使用具有音频焦点偏好的高级播放器。例如 poweramp 有这样的选项。将通话中的设置/音频/音频焦点/暂停设置为 false(它有效,现在已测试)。但是您应该一直手动更改它。

【讨论】:

  • 我使用基于音频焦点的系统。当然,我可以忽略这一点并继续播放我的音乐,但这不会阻止呼叫中断我的音乐播放器的哔哔声......如果我以这种方式解决它,中断不会停止我的播放器,但仍然哔声将覆盖我的播放器音乐...
  • @prom85 你有蓝牙耳机还是有线的?
  • 蓝牙......但我想我也用有线的......但我现在不确定
  • @prom85 我现在用有线耳机和nexus 5 设备对其进行了测试,我没有收到任何中断或哔哔声。用有线试试。
  • 我会试试的。顺便说一句,我确信并非所有手机都存在此问题。我知道,同样的技术适用于我的旧 HTC One Mini 2,但现在不适用于我的新三星 Alpha...我仍然会检查并测试电源放大器是否能按预期在我的手机上运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
相关资源
最近更新 更多