在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();
}
});
}
复制代码