Ответ 1
Settings.System
содержит несколько флагов, которые вы можете использовать для этого:
-
WIFI_USE_STATIC_IP
-
WIFI_STATIC_IP
-
WIFI_STATIC_NETMASK
-
WIFI_STATIC_GATEWAY
-
WIFI_STATIC_DNS1
иWIFI_STATIC_DNS2
Вам также потребуется разрешение android.permission.WRITE_SETTINGS
, объявленное для вашего приложения.
Затем в вашей деятельности:
final ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WIFI_USE_STATIC_IP, 1);
Settings.System.putString(cr, Settings.System.WIFI_STATIC_IP, "you.re.ip.addr");
// call putString() for each value to set for your interface
Если вы хотите изменить IP-адрес интерфейса оператора 3G/4G и т.д., я не считаю, что это возможно - поскольку оно подключено к перевозчику и использует их DHCP/security, чтобы вы могли подключаться и использовать их (вроде как изменение внешнего IP-кабеля вашего кабельного модема без согласия вашего интернет-провайдера).