Прокси-сервер Android запутывает ресурсы документации


Мне кажется, что существует много запутанных ресурсов, касающихся темы прокси на Android.

Во-первых, кажется, что все методы прокси-класса объявлены устаревшими и предлагается:

" используйте стандартные значения прокси Java vm для поиска хоста, порта и список исключений. Этот вызов игнорирует список исключений."

Официальные значения прокси Java vm могут быть доступны в следующем Способ:

System.getProperty("http.proxyHost")
System.getProperty("http.proxyPort")
System.getProperty("http.nonProxyHosts")

Это может показаться подтвержденным документацией класса ProxySelector.

Но, пробуя на реальном устройстве или эмуляторе, эти значения кажутся мне всегда пустыми. После просмотра исходного кода Android скрытой активности ProxySelector , кажется, что прокси сохраняется в защищенных настройках системы следующим образом:
Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname);

И только приложение, подписанное поставщиком ОС, может выполнять запись в защищенные настройки. Разработчики могут получить доступ к этим настройкам только в режиме чтения следующим образом:

Settings.Secure.getString(getApplicationContext().getContentResolver(),Settings.Secure.HTTP_PROXY);

Кто-нибудь может уточнить, если это правильное чтение, как можно получить доступ к настройкам прокси в Android? (По крайней мере, кажется, что это работает). Если это правильная интерпретация, то почему документация так полна ошибок?

2 8

2 ответа:

Для получения значений прокси-сервера, доступ к свойствам системы, как вы сделали, должен работать; это не должно быть необходимо для доступа к защищенным настройкам. Если вы не можете использовать системные свойства для чтения параметров прокси-сервера, выполненных через обычный пользовательский интерфейс устройства, то возникает проблема. Прокси-серверы предназначены для каждого типа сети, поэтому APN и WiFi будут иметь отдельные настройки прокси-сервера.

Я не знаю, является ли это "правильным" способом доступа к настройкам прокси-сервера, но это правильный и единственный способ доступа к системе "безопасные настройки".

Может быть, это также интересно, похоже, что это упрощает дело, особенно если есть Wi-Fi proxys (поддерживает ли Android что-то подобное?). По крайней мере, это выглядит как отличная абстракция для различных версий android.