You need to save the ringer mode in SharedPreference
@Override
public void onReceive(Context context, Intent intent) {
AudioManager maudio = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
SharedPreferences pref = context.getSharedPreferences("app", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
this.context = context;
bundle = intent.getExtras();
if (bundle == null)
return;
state = bundle.getString(TelephonyManager.EXTRA_STATE);
Log.i("IncomingCall", "State: " + state);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING) || TelephonyManager.ACTION_PHONE_STATE_CHANGED.equals("EXTRA_STATE_RINGING")) {
editor.putInt("ringer_mode", maudio.getRingerMode());
editor.commit();
setupDatabase();
Bundle bundle = intent.getExtras();
String phoneNr = bundle.getString("incoming_number");
for (int i = 0; i < allowedThrough.size(); i++) {
if (PhoneNumberUtils.compare(allowedThrough.get(i), phoneNr)){
goToNormal();
}
}
}
System.out.println("current ringstate is now " + ringcheck);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_OFFHOOK))
maudio.setRingerMode(pref.getInt("ringer_mode", 0));
}