Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android 10 requestNetwork()显示指定网络所用时间过长_Java_Android_Android Wifi_Android 10.0 - Fatal编程技术网

Java Android 10 requestNetwork()显示指定网络所用时间过长

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的错

我正在尝试将我的Android 10设备连接到WiFi网络。我正在使用wifinetworksspecifier API来描述我要连接到的网络属性。连接进行得很顺利,但我经常看到显示给用户的提示太长(2到28秒),无法显示我用wifinetworksspecifier对象描述的网络

这是我的代码(与此处链接的Google示例相同->)

连接没有问题,但操作系统查找请求的网络所花费的时间对我来说不合适。我的代码有问题吗


非常感谢

通过对比实验,我们发现安卓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);