91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

    宜都市| 开江县| 航空| 上犹县| 利川市| 萝北县| 彩票| 义马市| 海南省| 盐城市| 渭南市| 宿州市| 黄大仙区| 宁远县| 辽阳县| 万源市| 泊头市| 商水县| 张掖市| 武威市| 昌平区| 大连市| 上饶县| 宁海县| 阿城市| 三河市| 临潭县| 清水县| 河池市| 衡阳市| 磐石市| 图片| 和田市| 南丹县| 延津县| 鸡东县| 崇信县| 商河县| 塔城市| 三门峡市| 定州市|