前段时间我做了一个应用程序,它可以在某些人来电时更改铃声模式。因此,当其中一个人打电话时,它会更改响铃模式以使通话以最大音量响铃。我用
setRingerMode(AudioManager.RINGER_MODE_NORMAL)
am.setStreamVolume(AudioManager.STREAM_RING, am.getStreamMaxVolume(AudioManager.STREAM_RING), 0);
该应用程序还将中断过滤器更改为 INTERRUPTION_FILTER_ALL,但为了使事情更容易,我们假设未启用“请勿打扰”。因此,例如,如果手机设置为振动,当有匹配的联系人来电时,它会打开振铃器,并将音量设置为最大。
在我拿到带有棉花糖(Nexus 6P)的手机之前,一切都很好。现在,如果有来电,我的应用程序会像往常一样更改响铃模式和音量,但来电不会受到影响。即使铃声设置已更改,它的行为仍然相同。我可以验证我的应用程序是否正在进行更改 - 通话结束后,铃声音量设置完全符合它们应有的状态。如果另一个电话打进来,那个电话会正常响铃。似乎响铃模式更改并未应用于已经在进行中的来电。
有没有人对导致这种情况的 Marshmallow 的变化有什么建议,以及是否有解决方法?