2011-10-28 5 views
0

コールが来たときに再生アラームを無効にしたいとします。 着信音だけが聞こえ、アラーム音は聞こえません。コール中に再生アラームを無効にする方法

どうすればよいですか?活動、サービスまたはあなたがコンテキストオブジェクトを持ってどこからでも

答えて

0

AlarmManager am = (AlarmManager)context.getSystemService(Context.AUDIO_SERVICE); 
am.setStreamMute(AudioManager.STREAM_ALARM, true); 

だけミュートを脱ぐことを忘れないでください。また、通話が終了してプロセスが不要になってシステムがそれを破壊すると、ミュートがオフになります。

しかし、プロセスを稼働させている場合は、AlarmManagerへの参照を保持することが重要です。私が見つけたバグは、電話番号setStreamMute(..., true)に電話して参照を失った場合でも、何度呼んでもsetStreamMute(..., false)はミュートされません。

AudioManagerの静的リファレンスを保持するだけです。

+0

あなたのコードは、 'setStreamMute'メソッドを持たないAlarmManagerを参照しています。あなたはAudioManagerを意味しました、そうですか? –

関連する問題