簡體   English   中英

Android Studio模擬器連接狀態

[英]Android studio emulator connection status

我有一種檢測連接狀態的方法

boolean isInternetAvailable(WebView view) {
    Boolean connected = false;

    try {
        ConnectivityManager connectivityManager = (ConnectivityManager) view.getContext()
                .getSystemService(view.getContext().CONNECTIVITY_SERVICE);

        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        connected = networkInfo != null && networkInfo.isAvailable() &&
                networkInfo.isConnected();

        Log.d("available", Boolean.toString(networkInfo.isAvailable()));
        Log.d("connected", Boolean.toString(networkInfo.isConnected()));
        Log.d("compare", Boolean.toString(networkInfo.getState() == NetworkInfo.State.CONNECTED));

        return connected;

    } catch (Exception e) {

    }

    return connected;
}

但是當我從計算機上斷開所有Internet電纜的連接,並且實際上無法加載任何頁面時,模擬器仍然會認為他已連接了什么並返回

  11-21 13:43:22.103 20824-20824/lt.example.app D/available: true
  11-21 13:43:22.103 20824-20824/lt.example.app D/connected: true
  11-21 13:43:22.103 20824-20824/lt.example.app D/compare: true

進行控制台,此方法在WebViewClient中用於在使用WebView時檢測連接,這是什么?

問題是,你的模擬器並不真正關心你的機器上的實際連接狀況。 您可能需要在模擬器上啟用/禁用飛行模式才能獲得正確的結果。

只要您的模擬器啟用了wifi /數據,它就會告訴您, 是的,即使您無法訪問互聯網,我也已連接上。

如果要檢查連接是否正常,請參閱: Android檢查互聯網連接isInternetAvailable()

嘗試創建新對象:

boolean isInternetAvailable(WebView view) {
Boolean connected = false;

try {
    ConnectivityManager connectivityManager = (ConnectivityManager) view.getContext()
            .getSystemService(view.getContext().CONNECTIVITY_SERVICE);

    NetworkInfo networkInfo = new NetworkInfo();
    networkInfo=connectivityManager.getActiveNetworkInfo();
    connected = networkInfo != null && networkInfo.isAvailable() &&
            networkInfo.isConnected();

    Log.d("available", Boolean.toString(networkInfo.isAvailable()));
    Log.d("connected", Boolean.toString(networkInfo.isConnected()));
    Log.d("compare", Boolean.toString(networkInfo.getState() == NetworkInfo.State.CONNECTED));

    return connected;

} catch (Exception e) {

}

return connected;

}

暫無
暫無

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

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