Прокси Android запутанные ресурсы документации - PullRequest
8 голосов
/ 17 февраля 2012

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

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

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

Официальные значения java vm proxy доступны следующим образом:

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 ]

2 голосов
/ 23 февраля 2012

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

2 голосов
/ 17 февраля 2012

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

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

...