静态IP参考:Android设置WIFI静态IP_lebulangzhen的博客-CSDN博客
DHCP代码如下:
public static void setWifiDHCP() {
try {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiConfiguration wifiConfig = null;
WifiInfo connectionInfo = wifiManager.getConnectionInfo(); //得到连接的wifi网络
List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();
for (WifiConfiguration conf : configuredNetworks) {
if (conf.networkId == connectionInfo.getNetworkId()) {
wifiConfig = conf;
break;
}
}
Class ipAssignmentCls = Class.forName("android.net.IpConfiguration$IpAssignment");
Method setIpAssignmentMethod = wifiConfig.getClass().getDeclaredMethod("setIpAssignment", ipAssignmentCls);
setIpAssignmentMethod.invoke(wifiConfig, IpConfiguration.IpAssignment.DHCP);
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disableNetwork(netId);
wifiManager.enableNetwork(netId, true);
} catch (IllegalAccessException | InvocationTargetException | ClassNotFoundException | NoSuchMethodException e) {
e.printStackTrace();
}
}