Un'app Android può aver bisogno dell'indirizzo del proxy corrente senza possedere le impostazioni di connessione. Parti dall'interfaccia proxy di rete invece di cercare una colonna del database chiamata user o password.

La configurazione APN della telefonia descrive l'accesso dell'operatore. I suoi campi account appartengono a quella configurazione. Non sono un archivio generale di credenziali per il proxy HTTP selezionato su Wi-Fi, su una rete gestita o su una connessione privata di un'app.

Informazione necessariaConfigurazione pertinente
Account di accesso ai dati dell'operatoreImpostazioni APN, con le restrizioni di accesso della piattaforma
Proxy HTTP attuale della reteConnectivityManager e ProxyInfo
Login richiesto da un proxy selezionatoIl flusso di autenticazione supportato dal client e l'origine dell'account approvata

Su una versione di Android supportata, ConnectivityManager.getDefaultProxy() restituisce le informazioni proxy applicabili. Il risultato può essere assente. Un ProxyInfo può descrivere un endpoint diretto o una configurazione PAC, quindi esamina la sua forma prima di trattare ogni risultato come coppia host e porta.

ProxyInfo non espone una coppia universale nome utente/password. Se il servizio scelto richiede l'autenticazione, ottieni l'account previsto tramite il meccanismo di credenziali supportato dall'app. Una richiesta di autenticazione proxy e un login dell'operatore possono usare identità del tutto diverse.

Questo separa anche la scoperta dall'uso. Un socket nativo o un SDK con il proprio trasporto non diventa consapevole del proxy solo perché l'app può leggere ProxyInfo. Affida il percorso selezionato a un client che supporti il suo protocollo e il suo metodo di autenticazione.

Gli esempi più vecchi che interrogano un provider di contenuti di telefonia descrivono versioni e autorizzazioni Android specifiche. Sono un contesto storico utile, ma non possono trasformare un account APN nella password mancante per un proxy non correlato.

Articoli correlati