Android 7.0에서는 전화 알림과 관련된 기능이 Android 플랫폼의 텔레콤 시스템 서비스에서 다이얼러 애플리케이션으로 이동합니다. 이전에는 통화 관련 알림을 표시할 책임이 텔레콤과 기본 다이얼러 앱 간에 분할되어서 동작의 불일치가 발생했습니다. Android 7.0에서는 다이얼러가 전화 알림을 전적으로 처리합니다.
Android 6.x 이하에서의 동작
이전 Android 버전에서는 텔레콤과 다이얼러의 책임이 다음과 같이 분할되었습니다.
기능 | 텔레콤 책임 | 다이얼러 책임 |
---|---|---|
수신 전화 알림 | 예(벨소리, 진동) | 예(알림 표시, 발신번호 표시) |
음성사서함으로 보내기 | 예 | 아니요 |
맞춤 벨소리 | 예 | 아니요 |
부재중 전화 알림 | 예 | 아니요 |
메시지 대기 표시기(통화 음성사서함) | 예(전화 통신) | 아니요 |
시각적 음성사서함 알림 | 아니요 | 예 |
이러한 책임 분담으로 인해 발생하는 일관되지 않은 동작의 예는 다음과 같습니다.
- 텔레콤은 벨소리/진동 장치를 시작하는 일을, 다이얼러는 수신 전화 알림을 표시하는 일을 맡았습니다. 다이얼러의 시작 속도가 느리면 수신 전화 알림이 표시되기 몇 초 전에 벨소리가 울리기 시작할 수 있습니다.
- 텔레콤은 부재중 전화 알림을 표시하는 일을 맡았습니다. Google 발신번호 표시와 같은 독점 기능이 이러한 알림에서 작동하지 않으므로 텔레콤 알림과 다이얼러 UI 간에 불일치(예: 통화 기록 불일치)가 발생할 수 있습니다.
Android 7.0 이상에서의 동작
Android 오픈소스 프로젝트(AOSP) 다이얼러는 새로운 기능을 구현합니다. 자세한 내용은 다음 문서를 참고하세요.
- 부재중 전화 알림
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java
Dialer/android/dialer/calllog/MissedCallNotifier.java - 벨소리 재생:
frameworks/base/telecomm/java/android/telecom/InCallService.java
Telecom/src/com/android/server/telecom/InCallController.java
Dialer/java/com/android/incallui/ringtone/
Dialer/java/com/android/incallui/StatusBarNotifier.java - VVM 알림
frameworks/base/telephony/java/android/telephony/TelephonyManager.java
Telephony/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
Android 12 이상에서 발생하는 전화 통화의 알림 스타일
Android 12 이상을 실행하는 기기의 경우 통화의 일관성 있는 사용자 환경을 제공하려면 앱에서 수신 전화와 진행 중인 전화에 CallStyle
알림 스타일을 사용하는 것이 좋습니다.
자세한 내용은 수신 전화의 중요도 순위 지정을 허용하는 새로운 전화 통화 알림을 참고하세요.
구현
기기 구현자는 기본 다이얼러가 사용할 수 있는 API를 제공하는 Telecom/Telephony 구성요소를 업데이트해야 할 수 있습니다.