Учётные данные APN в Android и Network ProxyInfo служат разным целям
Читайте конфигурацию сетевого прокси через поддерживаемые интерфейсы Android и держите учётные данные доступа оператора отдельно от учётной записи HTTP-прокси.
Приложению Android может понадобиться текущий адрес прокси, хотя у него нет настроек подключения. Начните с интерфейса сетевого прокси, а не с поиска столбца базы данных с именем user или password.
Конфигурация APN телефонии описывает доступ оператора. Её поля учётной записи относятся к этой конфигурации. Они не являются общим хранилищем учётных данных для HTTP-прокси, выбранного в Wi-Fi, управляемой сети или приватном подключении приложения.
| Требуемая информация | Соответствующая конфигурация |
|---|---|
| Учётная запись доступа к данным оператора | Настройки APN с ограничениями доступа платформы |
| Текущий HTTP-прокси сети | ConnectivityManager и ProxyInfo |
| Вход, требуемый выбранным прокси | Поддерживаемый клиентом поток аутентификации и одобренный источник учётной записи |
В поддерживаемой версии Android ConnectivityManager.getDefaultProxy() возвращает применимые сведения о прокси. Результат может отсутствовать. ProxyInfo может описывать прямой конечный узел или конфигурацию PAC, поэтому проверьте его форму, прежде чем считать каждый результат парой «хост и порт».
ProxyInfo не предоставляет универсальную пару имени пользователя и пароля. Если выбранный сервис требует аутентификации, получите нужную учётную запись через поддерживаемый приложением механизм учётных данных. Запрос аутентификации прокси и вход у оператора могут использовать совершенно разные личности.
Это также отделяет обнаружение от использования. Нативный сокет или SDK с собственным транспортом не становится прокси-осведомлённым только потому, что приложение может читать ProxyInfo. Передайте выбранный маршрут клиенту, который поддерживает его протокол и метод аутентификации.
Более старые примеры, обращающиеся к поставщику содержимого телефонии, описывают конкретные выпуски и разрешения Android. Они полезны как исторический контекст, но не могут превратить учётную запись APN в недостающий пароль для несвязанного прокси.