Программная настройка Android IP, DNS, GATEWAY - PullRequest
21 голосов
/ 05 ноября 2010

Как мне установить IP-адрес Wi-Fi, DNS-адрес, шлюз от Android Java, то есть программно, я не нашел ни одного метода, который имеет возможность хранить значения.

Ответы [ 4 ]

27 голосов
/ 22 августа 2011

Вы можете изменить системные настройки программно.

Сначала вам нужно запросить разрешение «WRITE_SETTINGS» в вашем «AndroidManifest.xml»:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

Затем вам нужно изменить настройку, используя следующий код:

    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "0");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.2");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "192.168.0.3");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.1");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "1");

Доступ к текущим настройкам можно получить с помощью того же метода, но использовать «getString» вместо «putString».

Для получения информации о настройке параметров посетите ссылку здесь: Настройки. Система | Разработчики Android

2 голосов
/ 05 ноября 2010

Вы не можете сделать это из приложения.

Хотите, чтобы приложения на телефоне изменяли настройки телефона по желанию?

0 голосов
/ 09 апреля 2015

следующий код также может сделать это:

    WifiManager mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
    DhcpInfo dhcpInfo = mWifiManager.getDhcpInfo();
    int dns1 = dhcpInfo.dns1;
    int dns2 = dhcpInfo.dns2;
0 голосов
/ 05 ноября 2010

Не уверен, что это поможет, но можно вручную установить альтернативный IP-адрес, шлюз, DNS и т. Д. Для конкретной точки доступа в настройках беспроводной сети. Можете ли вы сделать это автоматически или использовать намерение - это другой вопрос?

Я только что видел, что может быть полезным

Как я могу вызвать экран настроек Wi-Fi из моего приложения с помощью Android

...