亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android如何獲取IP和UA

發布時間:2023-03-21 14:53:40 來源:億速云 閱讀:208 作者:iii 欄目:開發技術

本篇內容主要講解“Android如何獲取IP和UA”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Android如何獲取IP和UA”吧!

    獲取IP

    最近接入了一個新的SDK,初始化接口需要傳入當前設備的IP和UA作為參數。

    使用WIFI聯網與不使用WIFI,獲取到的IP地址不同。因此,需要先判斷當前設備通過哪種方式聯網,然后再獲取對應的IP地址。

    判斷網絡連接類型

    通過ConnectivityManager判斷網絡連接類型,代碼如下:

    private fun checkCurrentNetworkType() {
        val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        connectivityManager.run {
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
                when (activeNetworkInfo?.type) {
                    ConnectivityManager.TYPE_MOBILE -> {
                        // 通過手機流量
                    }
                    ConnectivityManager.TYPE_WIFI -> {
                        // 通過WIFI
                    }
                    else -> {}
                }
            } else {
                // Android M 以上建議使用getNetworkCapabilities API
                activeNetwork?.let { network ->
                    getNetworkCapabilities(network)?.let { networkCapabilities ->
                        if (networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
                            when {
                                networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> {
                                    // 通過手機流量
                                }
                                networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> {
                                    // 通過WIFI
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    獲取手機卡聯網 IP

    通過NetworkInterface獲取IPV4地址,代碼如下:

    NetworkInterface.getNetworkInterfaces().let {
        loo@ for (networkInterface in Collections.list(it)) {
            for (inetAddresses in Collections.list(networkInterface.inetAddresses)) {
                if (!inetAddresses.isLoopbackAddress && !inetAddresses.isLinkLocalAddress) {
                    // IP地址
                    val mobileIp = inetAddresses.hostAddress
                    break@loo
                }
            }
        }
    }

    獲取WIFI聯網 IP

    通過ConnectivityManagerWifiManager來獲取IP地址,代碼如下:

    private fun getWIFIIp() {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
            val wifiManager = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
            // IP 地址
            val wifiIp = Formatter.formatIpAddress(wifiManager.connectionInfo.ipAddress)
        } else {
            // Android Q 以上建議使用getNetworkCapabilities API
            val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
            connectivityManager.run {
                activeNetwork?.let { network ->
                    (getNetworkCapabilities(network)?.transportInfo as? WifiInfo)?.let { wifiInfo ->
                        // IP 地址
                        val wifiIp = Formatter.formatIpAddress(wifiInfo.ipAddress)
                    }
                }
            }
        }
    }

    獲取UA

    獲取設備的UserAgent比較簡單,代碼如下:

    // 系統 UA
    System.getProperty("http.agent")
    // WebView UA
    WebSettings.getDefaultUserAgent(context)

    到此,相信大家對“Android如何獲取IP和UA”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    古浪县| 阳原县| 温州市| 皮山县| 合川市| 云安县| 蒙城县| 图们市| 鸡东县| 上林县| 东港市| 龙门县| 绥德县| 泰顺县| 民权县| 隆林| 巢湖市| 陇西县| 沙河市| 进贤县| 河源市| 咸宁市| 渝中区| 建始县| 昌图县| 河北省| 吐鲁番市| 成安县| 富蕴县| 安岳县| 武穴市| 桐庐县| 丹凤县| 凤凰县| 宁城县| 镇巴县| 无棣县| 鄂温| 海盐县| 洛川县| 衡山县|