Android10以上连接指定的wifi

在Android10以下的时候wifiManager.addNetwork()会返回netWordkId,
然后WifiManager.enableNetwork(netId, true)就可以连接到指定的wifi,
但是这种方式在android10已经被弃用了,取代方式如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkSpecifier networkSpecifier = new WifiNetworkSpecifier.Builder()
                    .setSsid(wifiName)
                    .setWpa2Passphrase(pwd)
                    .build();
            NetworkRequest networkRequest = new NetworkRequest.Builder()
                    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                    .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                    .setNetworkSpecifier(networkSpecifier)
                    .build();
            cm.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback() {
                @Override
                public void onAvailable(@NonNull Network network) {
                    super.onAvailable(network);
                    callBack.onSuccess(wifiName);
                }

                @Override
                public void onUnavailable() {
                    super.onUnavailable();
                    callBack.onError();
                }
            });
}
复制代码
分类:
Android
标签: