각종 네트워크 연결의 판단 방식

때때로 프로그램에서 네트워크의 연결 상태를 판단해야 한다. 이런 방식은 3G 네트워크의 연결 여부만 판단할 수 있고 이 방법으로 와이파이의 사용 상황을 판단할 수 없다. 이 코드를 사용할 때 안드로이드 매니페스트가 필요하다.xml에 권한 추가
		 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;
		}
	}

좋은 웹페이지 즐겨찾기