【问题标题】:how to stop telephone ringing when get call, but not mute it globally如何在接到电话时停止电话响铃,但不能全局静音
【发布时间】:2012-08-20 13:42:19
【问题描述】:

我知道如何在电话响铃时全局静音:

AudioManager audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);                  
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

但我想在不全局静音的情况下将电话铃声静音。就像如果您单击手机上的声音按钮,它会停止响铃。

我将如何以编程方式执行此操作?

【问题讨论】:

    标签: android


    【解决方案1】:

    您是否可以在手机处于振铃状态时将振铃流静音,然后在振铃完成后重新打开它。您可以使用内容观察器来检查手机的当前状态。我认为从 ICS 开始,铃声和通知声音都在同一个流上播放,我想不出另一种方法来做到这一点。这确实意味着您在电话响铃时不会收到通知的声音。

    audioManager.setStreamMute(AudioManager.STREAM_RING, true);
    

    【讨论】:

    • 感谢您的回答。因此,如果我需要在通知中发出声音,我不能只静音来电铃声并播放通知声音吗?
    • @Andrew:有一个名为 STREAM_NOTIFICATION 的单独流类型,它不应该受到静音 STREAM_RING 的影响。
    • 我很确定在冰淇淋三明治及以上,如果你改变铃声的音量,通知音量也会改变。我认为一些手机(例如 s3)会覆盖它以获得两个单独的流,但大多数手机不会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多