Программная настройка Android IP,DNS,GATEWAY
Как установить IP-адрес Wi-Fi, DNS-адрес, шлюз от Android Java, то есть программно, я не нашел ни одного метода, который имеет возможность хранить значения.
5 ответов
Вы можете изменить системные настройки программно.
Сначала вам нужно запросить разрешение "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".
Для получения информации о настройке параметров посетите ссылку здесь: Settings.System | Разработчики Android
Вы не можете сделать это из приложения.
Хотите, чтобы приложения на вашем телефоне меняли настройки телефона по желанию?
Не уверен, что это поможет, но можно вручную установить альтернативный IP-адрес, шлюз, DNS и т. Д. Для конкретной точки доступа в настройках беспроводной сети. Можете ли вы сделать это автоматически или с помощью намерения - это другой вопрос?
Я только что увидел это, что может быть полезным
Как я могу вызвать экран настроек Wi-Fi из моего приложения с помощью Android
android.provider.Settings.System.putString устарел, теперь это новый метод https://developer.android.com/reference/android/net/wifi/WifiManager, также я не знаю, как использовать этот новый метод, если Кто-то знает это, пожалуйста, научи и меня
Следующий код также может сделать это:
WifiManager mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcpInfo = mWifiManager.getDhcpInfo();
int dns1 = dhcpInfo.dns1;
int dns2 = dhcpInfo.dns2;