1. 程式人生 > >Android判斷網路連線狀態程式碼

Android判斷網路連線狀態程式碼

        很多時候對於手機或者平板電腦這樣的手持裝置,我們是不知道它們的網路連線狀態的,在聯網的時候我們必須得保證裝置的網路是否正常,是否可以連線上網際網路,或者我們在進行大量資料上傳或者下載,例如下載網路視訊,看網路電視等等,我們必須得為使用者省錢,這樣大資料的傳輸顯然是不能使用使用者昂貴的資料流量的,而是判斷當前網路是不是在wifi下,使用WiFi來進行大資料的傳輸,會給使用者更好的體驗,那麼下面這個工具類就是用來判斷裝置網路連線狀態的,不僅判斷了當前設定手機網路下還是WiFi環境下,而且如果手機網路下還需要設定運營商的代理IP和埠。
</pre><pre name="code" class="java">/**
 * 判斷網路狀態的工具類
 * 
 */
public class NetworkUtil {
 
    /* 程式碼IP */
    private static String PROXY_IP = null;
    /* 代理埠 */
    private static int PROXY_PORT = 0;
    /**
     * 判斷當前是否有網路連線
     * 
     * @param context
     * @return
     */
    public static boolean isNetwork(Context context) {
        boolean network = isWifi(context);
        boolean mobilework = isMobile(context);
        if (!network && !mobilework) { // 無網路連線
            Log.i(NetworkUtil, 無網路連結!);
            return false;
        } else if (network == true && mobilework == false) { // wifi連線
            Log.i(NetworkUtil, wifi連線!);
        } else { // 網路連線
            Log.i(NetworkUtil, 手機網路連線,讀取代理資訊!);
            readProxy(context); // 讀取代理資訊
            return true;
        }
        return true;
    }
 
    /**
     * 讀取網路代理
     * 
     * @param context
     */
    private static void readProxy(Context context) {
        Uri uri = Uri.parse(content://telephony/carriers/preferapn);
        ContentResolver resolver = context.getContentResolver();
        Cursor cursor = resolver.query(uri, null, null, null, null);
        if (cursor != null && cursor.moveToFirst()) {
            PROXY_IP = cursor.getString(cursor.getColumnIndex(proxy));
            PROXY_PORT = cursor.getInt(cursor.getColumnIndex(port));
        }
        cursor.close();
    }
 
    /**
     * 判斷當前網路是否是wifi區域網
     * 
     * @param context
     * @return
     */
    public static boolean isWifi(Context context) {
        ConnectivityManager manager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (info != null) {
            return info.isConnected(); // 返回網路連線狀態
        }
        return false;
    }
 
    /**
     * 判斷當前網路是否是手機網路
     * 
     * @param context
     * @return
     */
    public static boolean isMobile(Context context) {
        ConnectivityManager manager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (info != null) {
            return info.isConnected(); // 返回網路連線狀態
        }
        return false;
    }
}

相關推薦

Android判斷網路連線狀態程式碼

        很多時候對於手機或者平板電腦這樣的手持裝置,我們是不知道它們的網路連線狀態的,在聯網的時候我們必須得保證裝置的網路是否正常,是否可以連線上網際網路,或者我們在進行大量資料上傳或者下載,例如下載網路視訊,看網路電視等等,我們必須得為使用者省錢,這樣大資料的傳輸

Android: 判斷網路連線狀態

看了網上好多方法,如下 public boolean getNetworkConnectionState(Context context) { if (context != n

Android 判斷網路連線狀態--實現微信線上/離線狀態切換

先看效果圖,有圖有效果了才有動力(右邊是關閉wifi/3g之後的Title樣子) 首先了解一下網路狀態的判斷方法,網路狀態是一個SystemService,可以通過context.getSystemService(String name)獲取,對應的服務名稱為conte

Android進階】判斷網路連線狀態並自動介面跳轉

用於判斷軟體開啟時的網路連線狀態,若無網路連線,提醒使用者跳轉到設定介面 /** * 設定在onStart()方法裡面,可以在介面每次獲得焦點的時候都進行檢測 */ @Override

macOS 開發- 使用 CFNetDiagnosticCopyNetworkStatusPassively 判斷網路連線狀態

文章目錄 判斷程式碼 CFNetDiagnosticStatus 列舉 判斷程式碼 - (BOOL)checkReachability{ CFNetDiagnosticRef dReference; d

iOS開發——Reachability和AFNetworking判斷網路連線狀態

一、Reachability // 監聽網路狀態改變的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotifi

android 檢查網路連線狀態實現步驟

獲取網路資訊需要在AndroidManifest.xml檔案中加入相應的許可權。  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判斷是否有網路連線  複製程式碼程式碼如下: publ

Android判斷網路連線是否可用及監控網路狀態

package com.meinv.mymeinv.tool; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo;

android網路請求網路連線狀態判斷 & 監控網路狀態改變

個人筆記 開發遇到的網路判斷思路:         不能每次網路請求都要去呼叫ConnectivityManager進行網路判斷,所以在程式啟動的時候判斷一次網路狀態,然後全域性記錄這個狀態,每次網路請求的時候只用根據這個記錄的狀態來判斷網路的連線狀態即可,只有當人為的關閉

Android】檢查當前網路連線狀態

public boolean haveNet(Context context) { // 獲得網路狀態管理器 connectivityManager = (ConnectivityManager) context.getSystemService(Contex

Android 實時監測(監聽)網路連線狀態變化

看了網上的很多,都不是自己想要的。所以自己就參考著寫了一個。 實現這個的方法很多,我是想的這種,如果哪有不足,有bug的地方希望大家指出,共同進步。。。。 先簡單說一下思路:網路變化時系統會發出廣播。所以我們監聽這個廣播,利用介面回撥通知activity做

Android 監聽網路連線狀態

Android手機在網路狀態發生改變的時候回傳送一條廣播。通過日誌列印,可以看到該條廣播的Action為:android.net.conn.CONNECTIVITY_CHANGE,但是在網路斷開和連線的時候或者由WIFI轉為行動網路的時候傳送的廣播的Action

android判斷網路狀態

在清單檔案中新增許可權 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission and

Android中檢查網路連線狀態的變化,無網路時跳轉到設定介面

在AndroidManifest.xml中加一個許可權 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <intent-filter>

Android 判斷網路狀態,實現app自動靜音

        在實際應用中,我們不希望在公司內網環境下,開啟遊戲就顯示較大的聲音,進而影響其他同事辦公環境。因此,就需要讓app變得智慧,讓app可以根據使用者當前網路狀態,自動進行靜音等操作。本次內容分為兩部分:1. 識別網路環境 2. 實現app自動靜音。 自動靜音

android判斷網路或wifi是否連線

判斷網路是否連線: ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE

Linux的系統呼叫 網路連線狀態 磁碟I/O 可疑行為監控/日誌收集 SHELL命令執行流程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

IOS網路、多執行緒、shareSDK-檢測網路連線狀態

在開發的時候需要我們去判斷使用者當前的網路狀態來進行操作,比如說下載時需要提示使用者當前的網路環境避免過度使用移動流量等 檢測網路這裡使用的是開源庫Reachability.swift-master 下載之後只需要將這個檔案匯入到專案目錄中即可 import UIKit cla

安卓專案實戰之:安卓7.0優化下的全域性網路連線狀態監聽

須知:Android7.0起網路變化監聽隱式廣播被關閉 在 Android 7.0 版本中除了提供諸多多視窗支援、活動通知、後臺優化、訊息傳遞服務和Vulkan 等新特性和功能外,還對系統和 API 行為做出了各種變更,其中最重要的一點:Android7.0為了進行後臺的優化刪除了三

Android判斷網路是否可用

public class NetUtils { /** * 判斷網路狀態是否可用 * * @param context * @return */ public static boolean isNetAvail