2011-09-19 249 views
0
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状态的最及时方式。Android AudioManager事件监听器?

回答

2

您需要在代码中注册一个BroadcastReceiver,该代码用于侦听RINGER_MODE_CHANGED_ACTION意图。这会让你知道状态已经改变。一旦你收到了这个意图,你可以调用getRingerMode()来找出当前状态。

0

你听过AudioManager.RINGER_MODE_CHANGED_ACTION吗?