使用新的API替换getNetworkSuggestions()方法,即使用NetworkRequest.Builder()和registerNetworkCallback()方法。以下是示例代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier.Builder()
.setSsid("wifi_ssid")
.setWpa2Passphrase("password")
.build();
NetworkRequest request = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(specifier)
.build();
ConnectivityManager connectivityManager = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
// do something when network is available
}
@Override
public void onLost(Network network) {
// do something when network is lost
}
};
connectivityManager.registerNetworkCallback(request, networkCallback);
}
在这个示例中,我们使用了WifiNetworkSpecifier.Builder()来指定WiFi网络的名称和密码,并使用NetworkRequest.Builder()创建了一个网络请求对象。我们还使用了ConnectivityManager.registerNetworkCallback()方法来注册网络回调。这种方法适用于Android 10及以上的版本。