前言
最近又在重新看《第一行代码》这本书,在第五章中有一个样例,可以检测当前网络状态,但是只能判断当前网络是否可用,在此之上我想是否能做出一个和我们日常使用的APP一样判断当前网络是wifi还是移动网络的样例出来,于是便有了这篇博文的诞生,同样这也是我第一次写博文,希望能够给需要的人带来一些启发。
检测网络变化
首先在清单文件里加入权限
这里我们加入的这个权限并非
因为我们只需要应用去获取当前网络状态,而不需要去通过应用去上网,所以只加入上述一个权限即可。
实现书上的样例
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "网络状态改变", Toast.LENGTH_SHORT).show();
}
}
由于代码比较少,直接在MainActivity里写一个内部类,让它继承自BroadcastReceiver,命名为NetworkChangeReceive,并重写onReceive方法,当检测到网络状态变化时弹出一个Toast。
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
在全局变量中增加两个变量。
protected void onCreate(Bundle savedInstan