Ringer mode change listener Broadcast receiver?

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;
}

From the code above I can get the ringer mode. What I would liek to do is listen the ringer mode changes and call a function.

What I have been told is that I can register the AudioManager. RINGER_MODE_CHANGED_ACTION and listen the change intent in broadcastreceiver onReceive method. It sounds clear. But I am new to android and really dont know how to write it. Is there any one can just write a piece of code and show how exactly it works instead of saying use this or that 🙂 Thank you

  • When to close cursor in Android?
  • How to get gravity 'bottom' working on a drawable in xml
  • Android Camera Image Size
  • How to make 4x1 size widget on Android homescreen?
  • no gravity for scrollview. how to make content inside scrollview as center
  • Android ICS : JNI error attempt to use stale local reference 0x1
  • What does AdapterView<?> mean in the OnitemClick() Method? What is the use of other parameters in it?
  • Retrofit and Centralized Error Handling
  • Why ITelephony.aidl works?
  • Why is gcc emmiting code aligned to a 2 byte boundary for the ARM instruction set?
  • How to add shadow to the FAB provided with the android support design library?
  • SVG support on smart-phone browsers
  • 2 Solutions collect form web for “Ringer mode change listener Broadcast receiver?”

    Use the following code inside the onCreate() method of your Activity or Service that you want to process the broadcast:

          BroadcastReceiver receiver=new BroadcastReceiver(){
              @Override
              public void onReceive(Context context, Intent intent) {
                   //code...
              }
          };
          IntentFilter filter=new IntentFilter(
                          AudioManager.RINGER_MODE_CHANGED_ACTION);
          registerReceiver(receiver,filter);
    

    Another solution is to add a receiver with an action in Manifest:

    <receiver android:name=".receivers.RingerModeStateChangeReceiver" >
        <intent-filter>
            <action android:name="android.media.RINGER_MODE_CHANGED" />
        </intent-filter>
    </receiver>
    

    and your class RingerModeStateChangeReceiver should extend BroadcastReceiver.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.