Назначьте статический IP-адрес для сети Wi-Fi на Android 3.x и 4.x
Я работаю над одним проектом и должен быть функционал для установки статического IP-адреса (DNS, Netmask, Gateway) дляWifi
если пользователь хочет это.
Мое первоначальное и актуальное решение это использованиеandroid.provider.Settings.System
Класс, который позволяет эту функцию, но это решение успешно работает только для устройств Android 2.x.
Это хорошо, определенно я не на нулевом уровне, но было бы неплохо заставить его работать и для более высоких версий ОС Android. Не знаю точно, почему это не работает.
Если я использую этот простой метод для проверки фактического статуса:
public static final boolean hasStaticIp(Context c) {
try {
return Settings.System.getInt(c.getContentResolver(),
Settings.System.WIFI_USE_STATIC_IP) == 1;
}
catch (SettingNotFoundException e) {
Log.i(TAG, "Settings not found (" + e.geMessage() + ")");
return false;
}
}
он возвращает true как для Android 2.x, так и для Android 4.x, но во втором случае изменения определенно не отражаются вWifi
я нашелэто немного жестко закодированное решение но это не сработало, как ожидалось.
Кто-нибудь сталкивался с такой же проблемой?
Я буду рад любому работающему решению, а также рутованным устройствам (возможно, какой-то команде в linux), так как легко проверить статус рут-телефона или нет.
Заранее спасибо.