발신번호 표시 스푸핑 방지

Android 11 (API 수준 30) 이상에서는 플랫폼이 STIR/SHAKEN 프로토콜을 지원하여 호출 시 발신자 번호를 확인하고 수신자에게 전달하는 안전한 비공개 메서드를 제공합니다. Android 11 이상에서는 이동통신사 결과 데이터에 액세스할 수 있도록 기본 다이얼러, 통화 선택, 스팸 앱과 같은 앱을 지원합니다. 이렇게 하면 앱에서 스팸 전화를 식별하고 전화를 받기 전에 사용자에게 알릴 수 있습니다.

Android 11 이상을 실행하는 기기의 경우 CallScreeningService API를 사용하는 통화 선택 및 스팸 앱에서 통화를 선택하는 기능에 액세스하여 사용자 개인 정보 보호와 기기 성능을 향상할 수 있습니다. 이 API를 사용하면 앱이 개별 권한을 요청할 필요가 없으며 Android 10 이하에서 표준 권한 요청을 통해 사용할 수 없었던 추가 정보에 액세스할 수 있습니다. 이 API에서 사용할 수 있는 데이터는 다음과 같습니다.

  • 수신 또는 발신 전화 수
  • 수신 전화 및 종료 알림
  • 통화 중 및 통화 후 선별 정보의 시스템 알림 창에 대한 제한된 액세스
  • 수신 전화를 거부하는 기능
  • 통화 시간
  • 통화 연결이 끊긴 이유
  • STIR/SHAKEN 결과

구현

다이얼러 앱, 통화 선택 앱, 스팸 앱은 CallScreeningService API를 채택해야 합니다. 사용자가 앱을 기본 발신번호 표시 및 스팸 앱으로 선택하면 앱이 getCallerNumberVerificationStatus() 메서드에 대한 액세스 권한을 수신하여 STIR/SHAKEN 프로토콜의 이동통신사 확인 메커니즘에서 STIR/SHAKEN 결과를 표시합니다. 이렇게 하면 자동녹음전화 감지가 가능합니다.

또한 통화 선택 앱은 ACTION_POST_CALL 인텐트 작업을 호출하여 통화 후 화면을 구현할 수 있습니다. 이 인텐트 작업은 사용자가 통화를 스팸으로 표시하거나 저장된 연락처 목록에 번호를 추가할 수 있는 활동을 시작합니다.