gpt4 book ai didi

android - 在 Android M 中,来电响铃时更改铃声模式没有任何效果

转载 作者:行者123 更新时间:2023-11-29 00:05:30 25 4
gpt4 key购买 nike

我刚才做了一个应用程序,每当有人来电时,它就会改变响铃模式。因此,当其中一个人调用时,它会更改响铃模式,使调用以最大音量响铃。我用

setRingerMode(AudioManager.RINGER_MODE_NORMAL)
am.setStreamVolume(AudioManager.STREAM_RING, am.getStreamMaxVolume(AudioManager.STREAM_RING), 0);

该应用还将中断过滤器更改为 INTERRUPTION_FILTER_ALL,但为了使事情变得更简单,我们假设未启用“请勿打扰”。因此,例如,如果手机设置为振动,当有来自匹配联系人的来电时,它会打开铃声,并将音量设置为最大。

在我拿到装有 Marshmallow 的手机 (Nexus 6P) 之前,一切正常。现在,如果有来电,我的应用程序会照常更改响铃模式和音量,但来电不会受到影响。它的行为方式仍然相同,即使铃声设置已更改。我可以验证我的应用确实在进行更改——通话结束后,铃声音量设置完全符合预期。如果有另一个电话打进来,那个电话会正常响铃。铃声模式更改似乎并未应用于正在进行的来电。

对于导致此问题的 Marshmallow 发生的变化以及是否有解决方法,是否有人有任何建议?

最佳答案

所以,我找到了解决这个问题的方法。我仍然不知道如何修复这个错误(或者为什么它首先存在),但我的解决方法效果很好。除了告诉操作系统更改铃声模式外,我还手动检索默认铃声,并在来电时在应用程序中播放:

Uri alertUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), alertUri);
if(r != null && !r.isPlaying()){
r.play();
}

然后,当来电停止响铃时,我手动停止那个Ringtone

关于android - 在 Android M 中,来电响铃时更改铃声模式没有任何效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34093403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com