[英]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.