各种网络连接的判断方式


有时候程序中需要判断网络的连接状态,这种方式只能够判断是否是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;
		}
	}

发布了32 篇原创文章 · 获赞 3 · 访问量 55万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章