系统广播监听飞行模式和耳机状态

来源:互联网 发布:java.* 编辑:程序博客网 时间:2024/04/29 22:44

直接上代码

首先别忘了权限

 <uses-permission android:name="android.permission.READ_CONTACTS"/>    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

广播监听飞行模式AirplaneActivity

public class AirplaneActivity extends Activity {    AirplaneReceiver receiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);        receiver = new AirplaneReceiver();        registerReceiver(receiver, filter);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    protected void onDestroy() {        unregisterReceiver(receiver);        super.onDestroy();    }}

AirplaneRecieve

public class AirplaneReceiver extends BroadcastReceiver{    @Override    public void onReceive(Context context, Intent intent) {        String str = "";        boolean isAirplaneOn = Settings.System.getInt(context.getContentResolver(),                Settings.System.AIRPLANE_MODE_ON, 0) != 0;        if(isAirplaneOn){            str = "开启了飞行模式";        } else{            str = "关闭了飞行模式";        }        Log.d("fanhy", str);        Toast.makeText(context, str, Toast.LENGTH_LONG).show();    }}

监听耳机状态

HeadActivity

public class HeadActivity extends Activity {    HeadReciever headReciever;    IntentFilter filter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        headReciever = new HeadReciever();        filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);        registerReceiver(headReciever, filter);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    protected void onDestroy() {        unregisterReceiver(headReciever);        super.onDestroy();    }}

HeadRecieve

public class HeadReciever extends BroadcastReceiver{    @Override    public void onReceive(Context context, Intent intent) {        String str = "";        if (intent.hasExtra("state")) {            if(intent.getIntExtra("state", 0) ==0){                str = "耳机拔出";            }else if(intent.getIntExtra("state", 0) == 1){                str = "耳机插入";            }            Toast.makeText(context, str, Toast.LENGTH_LONG).show();        }    }}
0 0