Android 開発者の皆様、こんにちは。
ブロードキャスト レシーバーを登録済みと宣言しましたandroid.media.RINGER_MODE_CHANGED
。それは正常に機能しており、呼び出しモードが変更されるたびに呼び出されます。
本当の問題は、呼び出し音モードの遷移を知る必要があることです。つまり、呼び出し音モードが通常からサイレントに、またはその逆に変更されたときに、いくつかのロジックを実行する必要があります。呼び出し音モードがサイレントからバイブレーションに変更された場合は、何もしません。
私がこれまでに行ったすべての調査は、あなたが RINGER_MDOE_CHANGED を受け取った時点で、それが変更されているという事実を指摘しています。その変更前の呼び出し音モードが何であるかはわかりません。
API ドキュメントから、http://developer.android.com/reference/android/media/AudioManager.html#RINGER_MODE_CHANGED_ACTIONは、インテントのエクストラに EXTRA_RINGER_MODE が含まれていると述べています。しかし、それは役に立ちません。それが現在の設定です。 から取得できますAudioManager.getRingerMode()
。
最後の呼び出し音モードを照会する方法を知っていますか? 皆さんが助けてくれることを願っています。あなたは私の最後の希望です。ありがとうございました。