您好,登錄后才能下訂單哦!
本篇內容主要講解“Android如何獲取IP和UA”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Android如何獲取IP和UA”吧!
最近接入了一個新的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 } } } } } } } }
通過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 } } } }
通過ConnectivityManager
或WifiManager
來獲取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) } } } } }
獲取設備的UserAgent比較簡單,代碼如下:
// 系統 UA System.getProperty("http.agent") // WebView UA WebSettings.getDefaultUserAgent(context)
到此,相信大家對“Android如何獲取IP和UA”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。