Android 7.0 przenosi funkcjonalność związaną z powiadomieniami o połączeniach z usługi systemu Telecom na platformie Android do aplikacji Dialer. Wcześniej odpowiedzialność za wyświetlanie powiadomień związanych z połączeniami była dzielona pomiędzy firmę Telecom i domyślną aplikację Dialer, co powodowało niespójności w zachowaniu. W systemie Android 7.0 Dialer przejmuje całą odpowiedzialność za obsługę powiadomień o połączeniach.
Zachowanie w systemie Android 6.x i wcześniejszych wersjach
We wcześniejszych wersjach Androida firmy Telecom i Dialer dzieliły się obowiązkami w sposób opisany poniżej:
Funkcjonalność | Wykonane przez Telekom | Wykonane przez Dialer |
---|---|---|
Powiadomienie o połączeniu przychodzącym | Tak (dzwoni, wibruje) | Tak (wyświetlanie powiadomień, identyfikacja dzwoniącego) |
Wyślij na pocztę głosową | Tak | NIE |
Niestandardowy dzwonek | Tak | NIE |
Powiadomienia o nieodebranych połączeniach | Tak | NIE |
Wskaźnik wiadomości oczekującej (połączenie z pocztą głosową) | Tak (telefonia) | NIE |
Wizualne powiadomienia poczty głosowej | NIE | Tak |
Przykłady niespójnego zachowania spowodowanego podziałem odpowiedzialności obejmowały:
- Telekomunikacja odpowiadała za uruchomienie dzwonka/wibratora, natomiast dialer odpowiadał za wyświetlenie powiadomienia o połączeniu przychodzącym. Jeśli dialer uruchamia się powoli, może to spowodować rozpoczęcie dzwonienia na kilka sekund przed wyświetleniem powiadomienia o połączeniu przychodzącym.
- Za wyświetlanie powiadomień o nieodebranych połączeniach odpowiadała firma Telecom. Ponieważ zastrzeżone funkcje (takie jak identyfikator rozmówcy Google) nie działają w przypadku tych powiadomień, może to powodować niespójności między powiadomieniami Telecom a interfejsem użytkownika Dialera (np. rejestrem połączeń).
Zachowanie w systemie Android 7.0 i nowszych wersjach
Dialer Android Open Source Project (AOSP) implementuje nową funkcjonalność. Szczegółowe informacje można znaleźć w następującej dokumentacji:
- Powiadomienia o nieodebranych połączeniach
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/Android/dialer/rejestr połączeń/MissedCallNotificationReceiver.java
Dialer/Android/dialer/calllog/MissedCallNotifier.java - Odtwarzanie dzwonków:
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 - Powiadomienia VVM
frameworks/base/telefonia/Java/Android/telephony/TelephonyManager.java
Telefonia/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
Styl powiadomień o połączeniach w systemie Android 12 lub nowszym
Aby zapewnić spójność obsługi połączeń na urządzeniach z systemem Android 12 lub nowszym, w przypadku urządzeń z systemem Android 12 lub nowszym zalecamy, aby aplikacje korzystały ze stylu powiadomień CallStyle
w przypadku połączeń przychodzących i trwających. Aby uzyskać więcej informacji, zobacz Powiadomienia o nowych połączeniach telefonicznych umożliwiające ocenę ważności połączeń przychodzących .
Realizacja
Osoby wdrażające urządzenia mogą wymagać aktualizacji komponentów telekomunikacyjnych/telefonicznych, które udostępniają interfejsy API dostępne do użytku przez domyślny dialer.