Android 10 requestNetwork花费太长时间显示指定的网络

问题描述

我正在尝试将我的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花费的时间对我来说并不适合。我的代码有什么问题吗?

非常感谢

解决方法

通过对比实验发现Android 11可以和Android 9一样好

我猜是 Android 10 的错误。对比Android 11和Android 10的代码,我们发现请求网络流程存在差异。