android之broadcastreceiver 耳机按键,Android系统常用广播BroadcastReceiver总结

本文详细介绍了Android中如何监听和处理系统广播事件,如网络变化、电源状态、SD卡状态等。通过动态注册BroadcastReceiver,可以在特定事件发生时执行相应操作,如在屏幕关闭或打开时打印信息。同时,还展示了静态注册BroadcastReceiver的示例,用于监听SD卡的挂载和卸载状态。
摘要由CSDN通过智能技术生成

释放双眼,带上耳机,听听看~!

以下是常用系统action

系统操作

action

监听网络变化

android.net.conn.CONNECTIVITY_CHANGE

关闭或打开飞行模式

Intent.ACTION_AIRPLANE_MODE_CHANGED

充电时或电量发生变化

Intent.ACTION_BATTERY_CHANGED

电池电量低

Intent.ACTION_BATTERY_LOW

电池电量充足(即从电量低变化到饱满时会发出广播

Intent.ACTION_BATTERY_OKAY

系统启动完成后(仅广播一次)

Intent.ACTION_BOOT_COMPLETED

按下照相时的拍照按键(硬件按键)时

Intent.ACTION_CAMERA_BUTTON

屏幕锁屏

Intent.ACTION_CLOSE_SYSTEM_DIALOGS

设备当前设置被改变时(界面语言、设备方向等)

Intent.ACTION_CONFIGURATION_CHANGED

插入耳机时

Intent.ACTION_HEADSET_PLUG

未正确移除SD卡但已取出来时(正确移除方法:设置–SD卡和设备内存–卸载SD卡)

Intent.ACTION_MEDIA_BAD_REMOVAL

插入外部储存装置(如SD卡)

Intent.ACTION_MEDIA_CHECKING

成功安装APK

Intent.ACTION_PACKAGE_ADDED

成功删除APK

Intent.ACTION_PACKAGE_REMOVED

下载并且成功安装

intent.action.PACKAGE_INSTALL

重启设备

Intent.ACTION_REBOOT

屏幕被关闭

Intent.ACTION_SCREEN_OFF

屏幕被打开

Intent.ACTION_SCREEN_ON

关闭系统时

Intent.ACTION_SHUTDOWN

重启设备

Intent.ACTION_REBOOT

那我们如何使用呢

动态注册方式:

public class MainActivity extends Activity {

private ScreenReceiver screenReceiver;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//动态的去注册广播接收者

screenReceiver = new ScreenReceiver();

//创建IntentFilter 对象

IntentFilter filter = new IntentFilter();

//添加要注册的action

filter.addAction("android.intent.action.SCREEN_OFF");

filter.addAction("android.intent.action.SCREEN_ON");

//动态注册广播接收者

registerReceiver(screenReceiver, filter);

}

@Override

protected void onDestroy() {

//当activity 销毁的时候要取消注册广播接收者

unregisterReceiver(screenReceiver);

super.onDestroy();

}

}

public class ScreenReceiver extends BroadcastReceiver {

//当我们进行屏幕锁屏和解锁 这个方法执行

@Override

public void onReceive(Context context, Intent intent) {

//获取当前广播的事件类型

String action = intent.getAction();

if("android.intent.action.SCREEN_OFF".equals(action)){

System.out.println("屏幕锁屏了 ");

}else if ("android.intent.action.SCREEN_ON".equals(action)) {

System.out.println("屏幕解锁了");

}

}

}

静态注册

直接写BroadcastReceiver文件,MainAndroidfast.XML配置

public class SdcardStateReceiver extends BroadcastReceiver {

//当sd状态发生改变的时候执行

@Override

public void onReceive(Context context, Intent intent) {

//获取到当前广播的事件类型

String action = intent.getAction();

if ("android.intent.action.MEDIA_MOUNTED".equals(action)) {

System.out.println("说明sd卡挂载了 ....");

}else if ("android.intent.action.MEDIA_UNMOUNTED".equals(action)) {

System.out.println("说明sd卡卸载了 ");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值