根据Android 13的新特性,需要采用新的API来选择Wi-Fi网络。可以使用以下代码示例:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier.Builder()
.setSsid("network_name")
.build();
NetworkRequest request = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.setNetworkSpecifier(specifier)
.build();
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.requestNetwork(request, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
// 网络可用时的处理
}
@Override
public void onLost(Network network) {
// 网络失效时的处理
}
});
} else {
// 在旧版本上使用ACTION_PICK_WIFI_NETWORK
}
该示例中使用了新的WifiNetworkSpecifier类和NetworkRequest类来建立与所需Wi-Fi网络的连接,并使用ConnectivityManager类的requestNetwork()方法向系统发送该请求。在Android 13及以前的版本中可以继续使用ACTION_PICK_WIFI_NETWORK方法。