少し前に、特定の人が電話をかけるたびに着信モードを変更するアプリを作成しました。そのため、それらのいずれかが電話をかけると、呼び出し音のモードが変更され、電話が最大音量で鳴ります。私が使う
setRingerMode(AudioManager.RINGER_MODE_NORMAL)
am.setStreamVolume(AudioManager.STREAM_RING, am.getStreamMaxVolume(AudioManager.STREAM_RING), 0);
アプリは割り込みフィルターも INTERRUPTION_FILTER_ALL に変更しますが、簡単にするために、おやすみモードが有効になっていないと仮定しましょう。たとえば、電話が振動するように設定されている場合、一致する連絡先からの着信があると、呼び出し音がオンになり、音量が最大に設定されます。
マシュマロ(Nexus 6P)を搭載した電話を入手する前は、すべて正常に機能していました。これで、着信がある場合、アプリは通常どおり呼び出し音のモードと音量を変更しますが、着信には影響しません。着信音の設定が変更されても、同じように動作します。私のアプリが間違いなく変更を行っていることを確認できます。通話が終了した後、呼び出し音量の設定は本来あるべきとおりになっています。そして、別の電話がかかってきた場合、その電話は適切に鳴ります。呼び出しモードの変更が、既に進行中の着信通話に適用されていないようです。
これを引き起こしているマシュマロの変更点と、それを回避する方法があるかどうかについて、誰か提案がありますか?