Android APN 자격 증명과 Network ProxyInfo는 서로 다른 목적을 수행합니다
Android가 지원하는 인터페이스로 네트워크 프록시 구성을 읽고, 통신사 액세스 자격 증명은 HTTP 프록시 계정과 분리해 두세요.
Android 앱은 연결 설정을 소유하지 않은 채 현재 프록시 주소를 필요로 할 수 있습니다. user 또는 password이라는 데이터베이스 열을 찾기보다 네트워크 프록시 인터페이스에서 시작하세요.
텔레포니 APN 구성은 통신사 액세스를 설명합니다. 그 계정 필드는 해당 구성에 속합니다. Wi-Fi, 관리형 네트워크 또는 앱의 비공개 연결에서 선택된 HTTP 프록시를 위한 범용 자격 증명 저장소가 아닙니다.
| 필요한 정보 | 관련 구성 |
|---|---|
| 통신사 데이터 액세스 계정 | APN 설정(플랫폼의 액세스 제한 포함) |
| 현재 네트워크 HTTP 프록시 | ConnectivityManager 및 ProxyInfo |
| 선택한 프록시가 요구하는 로그인 | 클라이언트가 지원하는 인증 흐름과 승인된 계정 출처 |
지원되는 Android 버전에서 ConnectivityManager.getDefaultProxy()는 적용 가능한 프록시 정보를 반환합니다. 결과가 없을 수도 있습니다. ProxyInfo는 직접 엔드포인트나 PAC 구성을 나타낼 수 있으므로 모든 결과를 호스트-포트 쌍으로 취급하기 전에 그 형태를 확인하세요.
ProxyInfo는 보편적인 사용자 이름/비밀번호 쌍을 노출하지 않습니다. 선택한 서비스가 인증을 요구하면 앱이 지원하는 자격 증명 방식으로 의도된 계정을 확보하세요. 프록시 챌린지와 통신사 로그인은 전혀 다른 ID를 사용할 수 있습니다.
이는 발견과 사용을 분리하기도 합니다. 네이티브 소켓이나 자체 전송을 가진 SDK는 앱이 ProxyInfo를 읽을 수 있다는 이유만으로 프록시를 인식하게 되지 않습니다. 선택한 경로는 그 프로토콜과 인증 방식을 지원하는 클라이언트에 넘기세요.
텔레포니 콘텐츠 제공자에 질의하는 오래된 예제는 특정 Android 릴리스와 권한을 설명합니다. 유용한 역사적 맥락이지만, APN 계정을 무관한 프록시의 빠진 비밀번호로 바꿀 수는 없습니다.