第一步创建广播接收器
public class NetReceiver extends BroadcastReceiver {
private ConnectivityManager connectivityManager;
@Override
public void onReceive(Context context, Intent intent) {
//系统类服务类用于网络管理连接
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取判断的实例对象
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
//通过对象的布尔值判断是否有网络
if (networkInfo != null && networkInfo.isAvailable()) {
Toast.makeText(context, "网络可用", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "网络不可用", Toast.LENGTH_SHORT).show();
}
}
}
第二步动态注册广播接收器动态声明地址
public class MainActivity extends AppCompatActivity {
private NetReceiver netReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 动态注册广播地址
netReceiver = new NetReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(netReceiver, filter);
}
// Activity 被销毁时候解除注册
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(netReceiver);
}
}
事件常量 | 描述 |
---|---|
android.intent.action.BATTERY_CHANGED | 持久的广播,包含电池的充电状态,级别和其他信息。 |
android.intent.action.BATTERY_LOW | 标识设备的低电量条件。 |
android.intent.action.BATTERY_OKAY | 标识电池在电量低之后,现在已经好了。 |
android.intent.action.BOOT_COMPLETED | 在系统完成启动后广播一次。 |
android.intent.action.BUG_REPORT | 显示报告bug的活动。 |
android.intent.action.CALL | 执行呼叫数据指定的某人。 |
android.intent.action.CALL_BUTTON | 用户点击"呼叫"按钮打开拨号器或者其他拨号的合适界面。 |
android.intent.action.DATE_CHANGED | 日期发生改变。 |
android.net.conn.CONNECTIVITY_CHANGE | 监听网络 |
网络状态改变提示![](https://i-blog.csdnimg.cn/blog_migrate/474d64f96d8111e281a7274c15248999.png)