Asynctask를 사용하여 인터넷에 액세스 할 수 있는지 확인

user4729909

인터넷에 액세스 할 수 있는지 확인하기 위해이 클래스가 있습니다.

public class NetworkAvailability extends AsyncTask<Context, Boolean, Boolean> {

Context mContext;

private static boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) ListViewActivity.getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    if (activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting()) {
        Log.i("Netzwerkstatus: ", "Netzwerk-Verbindung verfügbar");
        return true;
    }
    return false;

}

public NetworkAvailability(Context mContext) {
    this.mContext = mContext;
}

public NetworkAvailability() {
}

@Override
protected Boolean doInBackground(Context... params) {
    if (isNetworkAvailable()) {
        try {
            HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.de").openConnection());
            urlc.setRequestProperty("User-Agent", "Test");
            urlc.setRequestProperty("Connection", "close");
            urlc.setConnectTimeout(1500);
            try {
                urlc.connect();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //i ist 200 bei Internetverbindung
            int i = urlc.getResponseCode();
            return (i == 200);
        } catch (IOException e) {
            Log.e("IsInternetAccessible: ", "Konnte Internetverbindung nicht prüfen");
        }
    } else {
        Log.d("IsInternetAccessible:", "Internet nicht verfügbar");
    }
    return false;
}

이제 xml을 구문 분석하기 전에 인터넷에 액세스 할 수 있는지 확인하고 싶습니다. 다음은이 클래스를 사용하려는 스 니펫입니다.

if (networkAvailability.execute()) {
            XMLParser parser = new XMLParser();
            String xml = parser.getXMLFromUrl("http://XXXXXX.de/XX.xml");
            Document doc = parser.getDomElement(xml);

            NodeList nl = doc.getElementsByTagName(KEY_SYSTEM);

            for (int i = 0; i < nl.getLength(); i++) {

                // Neue HashMap erstellen
                HashMap<String, String> map = new HashMap<String, String>();
                Element e = (Element) nl.item(i);

                // Jedes Kind-Knoten zur HashMap
                map.put(KEY_UUID, parser.getValue(e, KEY_UUID));
                map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
                map.put(KEY_JOBTITLE, parser.getValue(e, KEY_JOBTITLE));
                map.put(KEY_JOBINFO, parser.getValue(e, KEY_JOBINFO));
                map.put(KEY_IMAGE, parser.getValue(e, KEY_IMAGE));

                //Hashmap zur ArrayList hinzufügen
                menuItems.add(map);
            }
        } else {
            Log.i("doInBackground:", "Keine Internet-Verbindung");
            return null;
        }

내 if 루프에서 NetworkAvailability 클래스의 결과를 조건으로 어떻게 사용할 수 있습니까?

무빈 파 루크 칸

당신이 할 수있는 일은 인터넷 연결을 확인하기 위해 별도의 클래스를 만든 다음 해당 클래스의 객체를 만들고 함수를 호출하여 코드를 정리하는 것입니다.

public class ConnectionDetector {

    private Context _context;

    public ConnectionDetector(Context context){
    this._context = context;
    }

    public boolean isConnectingToInternet(){
       ConnectivityManager connectivity = (ConnectivityManager)  _context.getSystemService(Context.CONNECTIVITY_SERVICE);
      if (connectivity != null) 
      {
          NetworkInfo[] info = connectivity.getAllNetworkInfo();
          if (info != null) 
              for (int i = 0; i < info.length; i++) 
                  if (info[i].getState() == NetworkInfo.State.CONNECTED)
                  {
                      return true;
                  }

      }
      return false;
   }
}

그런 다음 활동 전역에서 해당 ConnectionDetector에 대한 개체를 만듭니다.

ConnectionDetector cd=new ConnectionDetector(this);

그 함수를 사용하고 싶은 곳이 있으면

if(cd.isConnectingToInternet()){

     //internet available
}else{

     //internet not available
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ubuntu 서버는 인터넷에 액세스 할 수 없지만 SSH를 사용할 수 있습니다.

분류에서Dev

Ubuntu 서버는 SSH를 사용할 수 있지만 인터넷에 액세스 할 수 없습니다.

분류에서Dev

VMWare를 사용하여 가상 머신에서 인터넷에 액세스 할 수 없습니다.

분류에서Dev

노트북을 모뎀으로 사용하여 USB (Wi-Fi 없음)를 통해 스마트 폰에서 인터넷에 액세스 할 수 있습니까?

분류에서Dev

Flutter가 인터넷에 액세스 할 수 있는지 감지하는 방법이 있습니까?

분류에서Dev

인터넷 액세스에 로컬 게이트웨이를 사용하지만 vnet에 액세스 할 수있는 tun 인터페이스가 있어야합니다.

분류에서Dev

인터넷에 액세스 할 서비스를 지정하는 방법

분류에서Dev

xpath를 사용하는 확인란에 액세스 할 수 없음

분류에서Dev

xpath를 사용하는 확인란에 액세스 할 수 없음

분류에서Dev

인증 된 사용자가 URL에 액세스 할 수 있는지 확인

분류에서Dev

UbuntuServer 19.04는 인터넷에 액세스 할 수 없지만 SSH

분류에서Dev

NIC가 인터넷에 액세스 할 수 있는지 확인 (로컬 폐쇄 네트워크 대비)

분류에서Dev

JavaScript를 사용하여 인터넷 연결이 테 더링되었는지 확인할 수 있습니까?

분류에서Dev

사용자가 사진에 대한 액세스를 거부했는지 확인할 수 있습니까?

분류에서Dev

접근자를 사용하여 개인 데이터 멤버에 액세스 할 수 있다면 왜 개인 메서드에 액세스 할 수 없습니까?

분류에서Dev

systemd를 사용하여 원격 데이터베이스를 사용할 수 있는지 확인하는 방법

분류에서Dev

Flutter 인스턴스 멤버 'result'는 정적 액세스를 사용하여 액세스 할 수 없습니다.

분류에서Dev

Starbucks에서 인터넷에 액세스 할 수 없음-Ubuntu 16.04에서 작동하는 데 사용됨

분류에서Dev

Webmin 인터페이스를 사용하여 일부 보안 업데이트 후 Ubuntu 16.04 AWS EC2 Server에서 인터넷에 액세스 할 수 없음

분류에서Dev

OpenVPN에 연결할 수 있지만 인터넷에 액세스 할 수 없음

분류에서Dev

Java 8 Streams 필터를 사용하여 목록의 인덱스에 액세스 할 수 있습니까?

분류에서Dev

인터넷이 활성화 된 WiFi 네트워크를 사용할 수있을 때 인터넷에 액세스 할 수없는 IoT WiFi AP에 Android를 계속 연결하려면 어떻게해야합니까?

분류에서Dev

기기에 액세스 할 수 있는지 또는 명령을 사용하지 않는지 확인

분류에서Dev

AFNetworking을 사용하여 iOS에서 호스트 (서버)를 사용할 수 있는지 확인하는 방법

분류에서Dev

CentO에서 하나의 어댑터를 사용하여 로컬 호스트 및 인터넷에 액세스 할 수 없습니다.

분류에서Dev

포트 3000을 사용하는 AWS의 NodeJs 앱은 인터넷에서 액세스 할 수 없습니다.

분류에서Dev

파일에 액세스 할 수 있는지 확인하는 방법?

분류에서Dev

인트라넷에서 Wamp 2.5를 사용하여 WP 사이트에 액세스 할 수 없습니다.

분류에서Dev

AC 포인터를 사용하여 Lua 테이블 요소에 액세스 할 수 있습니까?

Related 관련 기사

  1. 1

    Ubuntu 서버는 인터넷에 액세스 할 수 없지만 SSH를 사용할 수 있습니다.

  2. 2

    Ubuntu 서버는 SSH를 사용할 수 있지만 인터넷에 액세스 할 수 없습니다.

  3. 3

    VMWare를 사용하여 가상 머신에서 인터넷에 액세스 할 수 없습니다.

  4. 4

    노트북을 모뎀으로 사용하여 USB (Wi-Fi 없음)를 통해 스마트 폰에서 인터넷에 액세스 할 수 있습니까?

  5. 5

    Flutter가 인터넷에 액세스 할 수 있는지 감지하는 방법이 있습니까?

  6. 6

    인터넷 액세스에 로컬 게이트웨이를 사용하지만 vnet에 액세스 할 수있는 tun 인터페이스가 있어야합니다.

  7. 7

    인터넷에 액세스 할 서비스를 지정하는 방법

  8. 8

    xpath를 사용하는 확인란에 액세스 할 수 없음

  9. 9

    xpath를 사용하는 확인란에 액세스 할 수 없음

  10. 10

    인증 된 사용자가 URL에 액세스 할 수 있는지 확인

  11. 11

    UbuntuServer 19.04는 인터넷에 액세스 할 수 없지만 SSH

  12. 12

    NIC가 인터넷에 액세스 할 수 있는지 확인 (로컬 폐쇄 네트워크 대비)

  13. 13

    JavaScript를 사용하여 인터넷 연결이 테 더링되었는지 확인할 수 있습니까?

  14. 14

    사용자가 사진에 대한 액세스를 거부했는지 확인할 수 있습니까?

  15. 15

    접근자를 사용하여 개인 데이터 멤버에 액세스 할 수 있다면 왜 개인 메서드에 액세스 할 수 없습니까?

  16. 16

    systemd를 사용하여 원격 데이터베이스를 사용할 수 있는지 확인하는 방법

  17. 17

    Flutter 인스턴스 멤버 'result'는 정적 액세스를 사용하여 액세스 할 수 없습니다.

  18. 18

    Starbucks에서 인터넷에 액세스 할 수 없음-Ubuntu 16.04에서 작동하는 데 사용됨

  19. 19

    Webmin 인터페이스를 사용하여 일부 보안 업데이트 후 Ubuntu 16.04 AWS EC2 Server에서 인터넷에 액세스 할 수 없음

  20. 20

    OpenVPN에 연결할 수 있지만 인터넷에 액세스 할 수 없음

  21. 21

    Java 8 Streams 필터를 사용하여 목록의 인덱스에 액세스 할 수 있습니까?

  22. 22

    인터넷이 활성화 된 WiFi 네트워크를 사용할 수있을 때 인터넷에 액세스 할 수없는 IoT WiFi AP에 Android를 계속 연결하려면 어떻게해야합니까?

  23. 23

    기기에 액세스 할 수 있는지 또는 명령을 사용하지 않는지 확인

  24. 24

    AFNetworking을 사용하여 iOS에서 호스트 (서버)를 사용할 수 있는지 확인하는 방법

  25. 25

    CentO에서 하나의 어댑터를 사용하여 로컬 호스트 및 인터넷에 액세스 할 수 없습니다.

  26. 26

    포트 3000을 사용하는 AWS의 NodeJs 앱은 인터넷에서 액세스 할 수 없습니다.

  27. 27

    파일에 액세스 할 수 있는지 확인하는 방법?

  28. 28

    인트라넷에서 Wamp 2.5를 사용하여 WP 사이트에 액세스 할 수 없습니다.

  29. 29

    AC 포인터를 사용하여 Lua 테이블 요소에 액세스 할 수 있습니까?

뜨겁다태그

보관