中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

    丹巴县| 德钦县| 阳山县| 莱州市| 柞水县| 乐平市| 襄汾县| 中卫市| 辉县市| 宜春市| 司法| 庆元县| 花莲市| 威海市| 南郑县| 洪泽县| 开封市| 绵竹市| 叶城县| 巧家县| 林甸县| 禹城市| 禹州市| 开封县| 莲花县| 铜陵市| 大余县| 安泽县| 体育| 班戈县| 肥东县| 公主岭市| 格尔木市| 荆门市| 喀喇| 鹤峰县| 久治县| 砀山县| 阿瓦提县| 内江市| 敦煌市|