NetWorkStateReceiver
package cn.edu.jlnu.checknetstate.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Build;
import android.widget.Toast;
/**
* Created by Administrator on 2017/1/11.
*/
public class NetWorkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//检测API是不是小于23
if(android.os.Build.VERSION.SDK_INT< Build.VERSION_CODES.LOLLIPOP){
//获取ConnectivityManager对象
ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取ConnectivityManager对象对应的NetworkInfo对象
//获取WIFI连接的信息
NetworkInfo wifiNetInfo=manager.getNetworkInfo(manager.TYPE_WIFI);
//获取移动数据连接的信息
NetworkInfo mobileNetworkInfo=manager.getNetworkInfo(manager.TYPE_MOBILE);
if(wifiNetInfo.isConnected()&&mobileNetworkInfo.isConnected()){
Toast.makeText(context,"Wifi已经连接,移动数据已经连接",Toast.LENGTH_SHORT).show();
}else if(wifiNetInfo.isConnected()&&!mobileNetworkInfo.isConnected()){
Toast.makeText(context,"Wifi已经连接,移动数据已经断开",Toast.LENGTH_SHORT).show();
}else if(!wifiNetInfo.isConnected()&&mobileNetworkInfo.isConnected()){
Toast.makeText(context,"Wifi已经断开,移动数据已经连接",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context,"Wifi已经断开,移动数据已经断开",Toast.LENGTH_SHORT).show();
}
}else{
//获取ConnectivityManager对象
ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取所有网络连接的信息
Network[] networks=manager.getAllNetworks();
//用于存放网络连接的信息
StringBuilder sb=new StringBuilder();
//通过循环将网络信息逐个读出来
if(networks.length==0){
Toast.makeText(context,"没有网络信息!",Toast.LENGTH_SHORT).show();
}else{
for(int i=0;i<networks.length;i++){
//获取ConnectivityManager对象对应的NetworkInfo对象
NetworkInfo networkInfo=manager.getNetworkInfo(networks[i]);
sb.append(networkInfo.getTypeName()+"connect is:"+networkInfo.isConnected());
}
Toast.makeText(context,sb.toString(),Toast.LENGTH_SHORT).show();
}
}
}
}
注册注销
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
Log.e("liuchen","注销");
}
//在OnResume方法注册
@Override
protected void onResume() {
super.onResume();
if(mReceiver==null){
mReceiver=new NetWorkStateReceiver();
}
IntentFilter filter=new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mReceiver,filter);
Log.e("liuchen","注册");
}
AndroidManifest.xml
<receiver android:name=".receiver.NetWorkStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>