Unha aplicación de Android pode necesitar o enderezo do proxy actual sen posuír a configuración de conexión. Comeza pola interface de proxy de rede en lugar de buscar calquera columna de base de datos chamada user ou password.

A configuración APN de telefonía describe o acceso do operador. Os seus campos de conta pertencen a esa configuración. Non son un almacén xeral de credenciais para o proxy HTTP seleccionado en Wi-Fi, nunha rede xestionada ou nunha conexión privada dunha aplicación.

Información necesariaConfiguración relevante
Conta de acceso a datos do operadorAxustes de APN, coas restricións de acceso da plataforma
Proxy HTTP actual da redeConnectivityManager e ProxyInfo
Inicio de sesión que esixe un proxy seleccionadoO fluxo de autenticación compatible co cliente e a fonte de conta aprobada

Nunha versión de Android compatible, ConnectivityManager.getDefaultProxy() devolve a información de proxy aplicable. O resultado pode estar ausente. Un ProxyInfo pode describir un extremo directo ou unha configuración PAC, así que inspecciona a súa forma antes de tratar cada resultado como un par de host e porto.

ProxyInfo non expón un par universal de usuario e contrasinal. Se o servizo elixido require autenticación, obtén a conta prevista mediante o mecanismo de credenciais compatible coa aplicación. Un desafío de proxy e un inicio de sesión do operador poden usar identidades completamente distintas.

Isto tamén separa o descubrimento do uso. Un socket nativo ou un SDK co seu propio transporte non se volve consciente do proxy só porque a aplicación poida ler ProxyInfo. Entrega a ruta seleccionada a un cliente que admita o seu protocolo e o seu método de autenticación.

Os exemplos antigos que consultan un provedor de contido de telefonía describen versións e permisos concretos de Android. Son un contexto histórico útil, pero non poden converter unha conta APN no contrasinal que falta para un proxy non relacionado.

Artigos relacionados