要使用Android Q和R中的WiFiManager API,需要在AndroidManifest.xml文件中添加以下权限:
然后,在Java代码中可以使用以下示例代码来使用WiFiManager API:
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
public class WifiUtils {
private WifiManager wifiManager;
public WifiUtils(Context context) {
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
}
public boolean isWifiEnabled() {
return wifiManager.isWifiEnabled();
}
public void enableWifi() {
if (!isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
}
public void disableWifi() {
if (isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
public void connectToWifi(String ssid, String password) {
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"" + ssid + "\"";
wifiConfig.preSharedKey = "\"" + password + "\"";
wifiManager.addNetwork(wifiConfig);
}
public void disconnectFromWifi(int networkId) {
wifiManager.disableNetwork(networkId);
wifiManager.disconnect();
}
}
上述代码示例中,WifiUtils类封装了一些常用的WiFi管理功能,包括检查WiFi是否已启用、启用WiFi、禁用WiFi、连接到指定的WiFi网络和断开连接。
请注意,从Android Q开始,连接到WiFi网络需要在应用的AndroidManifest.xml文件中声明ACCESS_FINE_LOCATION权限:
这是因为在Android Q及更高版本中,连接到WiFi网络被视为需要访问用户位置信息的操作。