Android 10 requestNetwork() 显示指定网络的时间太长
Android 10 requestNetwork() takes too long displaying specified network
我正在尝试将我的 Android 10 设备连接到 WiFi 网络。我正在使用 WiFiNetworkSpecifier API 来描述我想要连接的网络属性。连接正常,但我经常看到向用户显示的提示花费的时间太长(从 2 到 28 秒)无法显示我用 WifiNetworkSpecifier 对象描述的网络。
这是我的代码(它与此处链接的 Google 示例相同 -> https://developer.android.com/guide/topics/connectivity/wifi-bootstrap)
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(
new WifiNetworkSpecifier.Builder()
.setSsid(SSID)
.setWpa2Passphrase(psw)
.build()
)
.build();
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
if (WiFiCoordinator.this.listner != null){
WiFiCoordinator.this.listner.onConnected();
}
cm.bindProcessToNetwork(network);
}
@Override
public void onUnavailable() {
super.onUnavailable();
listner.onTestNetworkNotAvailable();
}
};
cm.requestNetwork(networkRequest, networkCallback);
连接没有问题,但是 OS 寻找请求的网络所花费的时间对我来说并不合适。我的代码有问题吗?
非常感谢
通过对比实验发现Android11和Android9
一样可以工作
我猜这是 Android 10 错误。对比Android11和Android10的代码,我们发现请求网络过程是有区别的
我正在尝试将我的 Android 10 设备连接到 WiFi 网络。我正在使用 WiFiNetworkSpecifier API 来描述我想要连接的网络属性。连接正常,但我经常看到向用户显示的提示花费的时间太长(从 2 到 28 秒)无法显示我用 WifiNetworkSpecifier 对象描述的网络。
这是我的代码(它与此处链接的 Google 示例相同 -> https://developer.android.com/guide/topics/connectivity/wifi-bootstrap)
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(
new WifiNetworkSpecifier.Builder()
.setSsid(SSID)
.setWpa2Passphrase(psw)
.build()
)
.build();
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
if (WiFiCoordinator.this.listner != null){
WiFiCoordinator.this.listner.onConnected();
}
cm.bindProcessToNetwork(network);
}
@Override
public void onUnavailable() {
super.onUnavailable();
listner.onTestNetworkNotAvailable();
}
};
cm.requestNetwork(networkRequest, networkCallback);
连接没有问题,但是 OS 寻找请求的网络所花费的时间对我来说并不合适。我的代码有问题吗?
非常感谢
通过对比实验发现Android11和Android9
一样可以工作我猜这是 Android 10 错误。对比Android11和Android10的代码,我们发现请求网络过程是有区别的