Androids APN-uppgifter och Network ProxyInfo tjänar olika syften
Läs nätverksproxykonfigurationen via Androids stödda gränssnitt och håll operatörens åtkomstuppgifter åtskilda från ett HTTP-proxykonto.
En Android-app kan behöva den aktuella proxyadressen utan att äga anslutningsinställningarna. Börja med nätverksproxygränssnittet i stället för att leta efter en databaskolumn som heter user eller password.
Telefoni-APN-konfigurationen beskriver operatörsåtkomst. Dess kontofält tillhör den konfigurationen. De är inte ett allmänt lager för autentiseringsuppgifter till HTTP-proxyn som väljs på Wi-Fi, i ett hanterat nätverk eller i en apps privata anslutning.
| Nödvändig information | Relevant konfiguration |
|---|---|
| Operatörens dataåtkomstkonto | APN-inställningar, med plattformens åtkomstbegränsningar |
| Aktuell nätverks-HTTP-proxy | ConnectivityManager och ProxyInfo |
| Inloggning som en vald proxy kräver | Klientens stödda autentiseringsflöde och den godkända kontokällan |
På en stödd Android-version returnerar ConnectivityManager.getDefaultProxy() den tillämpliga proxyinformationen. Resultatet kan saknas. En ProxyInfo kan beskriva en direkt slutpunkt eller en PAC-konfiguration, så granska formen innan du behandlar varje resultat som ett värd- och portpar.
ProxyInfo exponerar inte ett universellt användarnamn/lösenordspar. Om den valda tjänsten kräver autentisering, skaffa det avsedda kontot via appens stödda autentiseringsordning. En proxyutmaning och en operatörsinloggning kan använda helt olika identiteter.
Detta skiljer också upptäckt från användning. En inbyggd socket eller ett SDK med egen transport blir inte proxymedveten bara för att appen kan läsa ProxyInfo. Ge den valda vägen till en klient som stöder dess protokoll och autentiseringsmetod.
Äldre exempel som frågar en leverantör av telefoniinnehåll beskriver specifika Android-versioner och behörigheter. De är användbar historisk kontext, men de kan inte göra ett APN-konto till det saknade lösenordet för en orelaterad proxy.