问题描述
在我的 Flutter 应用程序中,我使用原生 Android 代码(在 Kotlin 中)以编程方式连接到特定的 Wi-Fi。对于 Android 10+,我需要使用网络说明符。它有效,但前提是应用程序在前台。在后台,我总是以 onUnavailable
回调结束。
在我的特定用例中,该应用连接到非常不稳定的 Wi-Fi(它始终关闭和打开)。我需要应用程序能够在没有任何用户交互的情况下重新连接,即使显示器关闭。
有没有办法在后台连接到特定网络?
val specifier = WifiNetworkSpecifier.Builder()
.setSsid(ssid)
.setBssid(MacAddress.fromString(macAddressstring))
.apply {
if (isWpa3 != null && isWpa3) {
setWpa3Passphrase(password)
} else {
setWpa2Passphrase(password)
}
}
.build()
var request = NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(specifier)
.build()
this.networkCallback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
connectivityManager.bindProcesstoNetwork(network)
// Success
}
override fun onUnavailable() {
super.onUnavailable()
// Unavailable
// Always end up here with display off
}
}
// Defined elsewhere
connectivityManager.requestNetwork(request,networkCallback)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)