Android 앱은 연결 설정을 소유하지 않은 채 현재 프록시 주소를 필요로 할 수 있습니다. user 또는 password이라는 데이터베이스 열을 찾기보다 네트워크 프록시 인터페이스에서 시작하세요.

텔레포니 APN 구성은 통신사 액세스를 설명합니다. 그 계정 필드는 해당 구성에 속합니다. Wi-Fi, 관리형 네트워크 또는 앱의 비공개 연결에서 선택된 HTTP 프록시를 위한 범용 자격 증명 저장소가 아닙니다.

필요한 정보관련 구성
통신사 데이터 액세스 계정APN 설정(플랫폼의 액세스 제한 포함)
현재 네트워크 HTTP 프록시ConnectivityManager 및 ProxyInfo
선택한 프록시가 요구하는 로그인클라이언트가 지원하는 인증 흐름과 승인된 계정 출처

지원되는 Android 버전에서 ConnectivityManager.getDefaultProxy()는 적용 가능한 프록시 정보를 반환합니다. 결과가 없을 수도 있습니다. ProxyInfo는 직접 엔드포인트나 PAC 구성을 나타낼 수 있으므로 모든 결과를 호스트-포트 쌍으로 취급하기 전에 그 형태를 확인하세요.

ProxyInfo는 보편적인 사용자 이름/비밀번호 쌍을 노출하지 않습니다. 선택한 서비스가 인증을 요구하면 앱이 지원하는 자격 증명 방식으로 의도된 계정을 확보하세요. 프록시 챌린지와 통신사 로그인은 전혀 다른 ID를 사용할 수 있습니다.

이는 발견과 사용을 분리하기도 합니다. 네이티브 소켓이나 자체 전송을 가진 SDK는 앱이 ProxyInfo를 읽을 수 있다는 이유만으로 프록시를 인식하게 되지 않습니다. 선택한 경로는 그 프로토콜과 인증 방식을 지원하는 클라이언트에 넘기세요.

텔레포니 콘텐츠 제공자에 질의하는 오래된 예제는 특정 Android 릴리스와 권한을 설명합니다. 유용한 역사적 맥락이지만, APN 계정을 무관한 프록시의 빠진 비밀번호로 바꿀 수는 없습니다.

관련 글