簡體   English   中英

檢查Android手機是否可以訪問互聯網

[英]Check if Android phone has access to internet

是否可以通過嘗試連接到網址來檢查手機是否可以訪問互聯網? 如果成功連接到網站,則應用程序將正常運行;如果連接失敗,則會彈出警報對話框,告訴用戶問題。

檢查互聯網並不能保證您可以輕松訪問自己的網站。 看,基本上即使有互聯網連接,事情仍然可能出問題。 具有活動的網絡接口並不能保證特定的網絡服務可用。 網絡問題,服務器停機時間,信號不足,門戶網站受限,內容過濾器等都可能阻止您的應用到達服務器。 例如,在您收到來自Twitter服務的有效回復之前,您無法確定您的應用程序是否可以訪問Twitter。

但是,您可以執行以下操作。

ConnectivityManager的getActiveNetworkInfo()方法返回一個NetworkInfo實例,該實例表示它可以找到的第一個連接的網絡接口;如果連接的接口沒有,則返回null。 檢查此方法是否返回null應該足以判斷是否有Internet連接。

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}

您還需要:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在您的Android清單中。

這是一種方法(如果您進行了一些搜索,我相信您會到達的)

private boolean isNetworkAvailable() {

    ConnectivityManager cm
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ai= cm.getActiveNetworkInfo();
    return ai!= null;
}

另一種方法是簡單地用try ... catch包圍您的請求並捕獲IOException。

問題在於該方法將阻塞一段時間。 您可以添加捕獲代碼以顯示alertDialog

試試這個-

if (!isNetworkAvailable())
     {
         //No network available       
     } 


private boolean isNetworkAvailable() {
            ConnectivityManager connectivityManager 
                  = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo != null;
        }

在您的manifest.xml中提及Internet的權限,並使用followinf代碼

private boolean isNetworkAvailable() {
            ConnectivityManager connectivityManager 
                  = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo != null;
        }

暫無
暫無

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

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