Java Android 10 requestNetwork()显示指定网络所用时间过长
我正在尝试将我的Android 10设备连接到WiFi网络。我正在使用wifinetworksspecifier API来描述我要连接到的网络属性。连接进行得很顺利,但我经常看到显示给用户的提示太长(2到28秒),无法显示我用wifinetworksspecifier对象描述的网络 这是我的代码(与此处链接的Google示例相同->) 连接没有问题,但操作系统查找请求的网络所花费的时间对我来说不合适。我的代码有问题吗Java Android 10 requestNetwork()显示指定网络所用时间过长,java,android,android-wifi,android-10.0,Java,Android,Android Wifi,Android 10.0,我正在尝试将我的Android 10设备连接到WiFi网络。我正在使用wifinetworksspecifier API来描述我要连接到的网络属性。连接进行得很顺利,但我经常看到显示给用户的提示太长(2到28秒),无法显示我用wifinetworksspecifier对象描述的网络 这是我的代码(与此处链接的Google示例相同->) 连接没有问题,但操作系统查找请求的网络所花费的时间对我来说不合适。我的代码有问题吗 非常感谢通过对比实验,我们发现安卓11可以和安卓9一样工作 我猜是安卓10的错
非常感谢通过对比实验,我们发现安卓11可以和安卓9一样工作
我猜是安卓10的错误。比较Android 11和Android 10的代码,我们发现请求网络过程中存在差异。ConnectivityService.requestNetwork-->WIFINetworkFactory-->needNetworkFor
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);