BroadcastReceiver

BroadcastReceiver  ci consente di trasmettere o ricevere messaggi dal sistema o da altre applicazioni Android,ad esempio se la batteria è scarica o se è stata attivata o disattivata la modalità aereo.Le trasmissioni di sistema vengono inviate a tutte le app iscritte per ricevere l’evento. Il messaggio broadcast è racchiuso in un oggetto Intent.
Ecco un esempio:

package com.example.broadcastReceiver.activities;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.broadcastReceiver.R;
import android.content.*;
import android.view.*;
import android.widget.*;
import android.provider.*;

public class MainActivity extends AppCompatActivity  {


private AirplaneModeReceiver airplaneModeReceiver = new AirplaneModeReceiver();

private class AirplaneModeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {


          if (isAirplaneMode(context.getApplicationContext())) {
Toast.makeText(context,”AirPlane mode is on”,Toast.LENGTH_LONG).show();
} else {

  Toast.makeText(context, “AirPlane mode is off”,Toast.LENGTH_LONG).show();

}
}
}
@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



}

  @Override
  protected void onResume() {
    super.onResume();
    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
   

  if(getApplicationContext()!=null) {

  registerReceiver(airplaneModeReceiver,intentFilter);
 

}

  }
 
 
@Override
  public void onPause() {

  super.onPause();

  if(getApplicationContext()!=null) {

unregisterReceiver(airplaneModeReceiver);
 
 
  }
  }
 

private  boolean isAirplaneMode(Context context) {

return  

Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON,0)!=0;


}
}