簡體   English   中英

Android是連接到互聯網方法的設備

[英]Android is device connected to the internet method

我想創建一個方法來告訴設備是否在線。 據我了解,ConnectivityManager僅告訴設備是否已連接到網絡。 這並不意味着設備已連接到互聯網。 為確保設備在線,我使用了InetAddress.getByName("google.com").isReachable(3); 但是我不能在主線程上使用它。 我可以創建一個單獨的線程來檢查連接性,然后使用回調函數,但是還有另一種方法嗎? 我不希望我的應用在連接之前執行任何操作。 你有什么解決方案? 謝謝!

嘗試這個:

public static boolean isOnline(Context context) {

    ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo netInfo = cm.getActiveNetworkInfo();

    if (netInfo != null && netInfo.isConnected()) {
        return true;
    }

    return false;
}

對於任何網絡,都無法保證在不實際發送數據的情況下檢查您是否已連接到端點。 即使設備已連接到網絡,具有ip地址,最近接收到的數據等,也並不意味着您仍在連接。

我建議允許用戶盡可能多地進入您的應用程序,在建立連接的同時在后台將對服務器的請求排隊。 如果在用戶使用應用程序時連接斷開,請使用相同的框架重新發送數據。 使與服務器的連接對用戶盡可能透明,除非在1分鍾后連接失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM