有時候程序中需要判斷網絡的連接狀態,這種方式只能夠判斷是否是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;
}
}