1
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
    Log.i("MyApp","Silent mode");
    break;
case AudioManager.RINGER_MODE_VIBRATE:
    Log.i("MyApp","Vibrate mode");
    break;
case AudioManager.RINGER_MODE_NORMAL:
    Log.i("MyApp","Normal mode");
    break;
}

上記のコードを使用すると、さまざまなAudioManager RINGER_MODE *タイプを正常に見つけることができますが、状態が変化したときにキャッチするEventListenerを見つけることができないようです。私が書いているアプリケーションはバックグラウンドで実行されるので、AudioManager.RINGER_MODEの状態をチェックする最もタイムリーな方法を知りたいです。

4

2 に答える 2

3

RINGER_MODE_CHANGED_ACTIONインテントをリッスンするBroadcastReceiverをコードに登録する必要があります。これにより、状態が変更されたことが通知されます。インテントを受け取ったら、getRingerMode()を呼び出して、現在の状態を確認できます。

于 2011-09-19T16:58:02.163 に答える
0

AudioManager.RINGER_MODE_CHANGED_ACTIONを聴いてみましたか?

于 2011-09-19T16:50:14.693 に答える