有时候程序中需要判断网络的连接状态,这种方式只能够判断是否是3G网络的连接,不能够使用此方法去判断wifi的使用情况
注意在使用此段代码的时候需要在AndroidManifest.xml中加入权限<uses-permission android:name="android.permission.READ_PHONE_STATE" />
final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new PhoneStateListener(){
@Override
public void onDataConnectionStateChanged(int state) {
// TODO Auto-generated method stub
switch (state) {
case TelephonyManager.DATA_DISCONNECTED:
Toast.makeText(TestMyListView.this, "网络断开",
Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.DATA_CONNECTING:
Toast.makeText(TestMyListView.this, "网络正在连接",
Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.DATA_CONNECTED:
Toast.makeText(TestMyListView.this, "网络已连接",
Toast.LENGTH_SHORT).show();
break;
}
super.onDataConnectionStateChanged(state);
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE)
//判断是否wifi连击
public static boolean isWiFiActive(Context inContext) {
WifiManager mWifiManager = (WifiManager) inContext
.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
int ipAddress = wifiInfo == null ? 0 : wifiInfo.getIpAddress();
if (mWifiManager.isWifiEnabled() && ipAddress != 0) {
System.out.println("**** WIFI is on");
return true;
} else {
System.out.println("**** WIFI is off");
return false;
}
}
//判断是否有网络
public static boolean isNetworkAvailable( Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
System.out.println("**** newwork is off");
return false;
} else {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if(info == null){
System.out.println("**** newwork is off");
return false;
}else{
if(info.isAvailable()){
System.out.println("**** newwork is on");
return true;
}
}
}
System.out.println("**** newwork is off");
return false;
}
// 检查网络连接,如果无网络可用,就不需要进行连网操作等 (是否有可用网络)
public static boolean isNetAvailable(Activity activity) {
ConnectivityManager mConnectivity = (ConnectivityManager) activity
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info != null && info.isAvailable() && info.isConnected()) {
return true;
} else {
return false;
}
}