Open taontech opened 1 year ago
官网WiFi连接的方式并不能适应所有的系统版本,下面是利用NetworkRequest的方法。
private fun android10andMoreVersionsWithoutOuterInternet( wifiSSID: String, wifiPassword: String ) { // Android 10 (API level 29) -- Android Q (Android 10) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { val wifiManager = this.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager val wifiNetworkSpecifier = WifiNetworkSpecifier.Builder() .setSsid(wifiSSID) .setWpa2Passphrase(wifiPassword) .build() val networkRequest = NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .setNetworkSpecifier(wifiNetworkSpecifier) .build() val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val networkCallback = object : ConnectivityManager.NetworkCallback() { override fun onAvailable(network: Network) { Log.d("NETWORK", "Network available") super.onAvailable(network) } override fun onUnavailable() { Log.d("NETWORK", "Network unavailable") super.onUnavailable() } override fun onLosing(network: Network, maxMsToLive: Int) { Log.d("NETWORK", "onLosing") super.onLosing(network, maxMsToLive) } override fun onLost(network: Network) { Log.d("NETWORK", "onLost") super.onLost(network) } } connectivityManager.requestNetwork(networkRequest, networkCallback) val builder = NetworkRequest.Builder() builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI) connectivityManager.registerNetworkCallback(networkRequest, networkCallback) // For listen } }
官网WiFi连接的方式并不能适应所有的系统版本,下面是利用NetworkRequest的方法。