gpt4 book ai didi

android-wifi - Wi-Fi 网络请求 API 中的对话框

转载 作者:行者123 更新时间:2023-12-04 15:35:52 25 4
gpt4 key购买 nike

我正在使用新的 API 29 将设备连接到 Android 10 设备中的 wifi 网络:

    private val connectivityManager: ConnectivityManager by inject()

override fun connectToNetwork(ssid: String, password: String) {
val networkRequest = buildNetworkRequest(ssid, password)

val networkCallback =
object : NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
Timber.d("Connected to network $ssid")
}

override fun onUnavailable() {
super.onUnavailable()
Timber.e("Unable to connect to network $ssid")
}
}

connectivityManager.requestNetwork(networkRequest, networkCallback, CONNECTION_TIME_OUT)

}

private fun buildNetworkRequest(ssid: String, password: String) =
NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(buildWifiNetworkSpecifier(ssid, password))
.build()

private fun buildWifiNetworkSpecifier(ssid: String, password: String) =
WifiNetworkSpecifier.Builder()
.setSsid(ssid)
.setWpa2Passphrase(password)
.build()

将出现一个对话框,其中包含“要使用的设备”,并列出了指定的 wifi 网络。该对话框有“取消”和“连接”两个按钮。当我点击“连接”时,设备连接到 wifi 网络(我可以在系统设置中看到)并且连接按钮被禁用。

但是对话框并没有消失,并且 requestNetwork 回调中的任何方法都没有被调用。最终我达到了指定的超时时间,另一个对话框出现了“出现问题。应用程序已取消选择设备的请求”。

这里发生了什么?我想连接到网络并调用回调中的“onAvailable”或“onUnavailable”方法。

最佳答案

在尝试了几乎所有事情之后,我终于设法按预期完成了这项工作。不知道为什么,但是当我进入设备的系统设置并忘记我试图以编程方式连接的 wifi 网络时,这开始起作用了。

我很高兴我摆脱了这个问题,但我不知道是什么导致了它,而且 future 的用户可能会遇到同样的事情。

关于android-wifi - Wi-Fi 网络请求 API 中的对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59784567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com