W Androidzie 7.0 funkcje związane z powiadomieniami o połączeniach zostały przeniesione z usługi systemowej Telecom na platformie Android do aplikacji Telefon. Wcześniej za wyświetlanie powiadomień związanych z połączeniami odpowiadały zarówno usługa Telecom, jak i domyślna aplikacja Telefon, co powodowało niespójności w działaniu. W Androidzie 7.0 aplikacja Telefon przejmuje całą odpowiedzialność za obsługę powiadomień o połączeniach.
Działanie w Androidzie 6.x i starszych wersjach
We wcześniejszych wersjach Androida aplikacje Telecom i Dialer miały podzielone obowiązki, jak opisano w tej tabeli:
| Funkcjonalność | Done by Telecom | Wykonano w aplikacji Telefon |
|---|---|---|
| Powiadomienie o połączeniu przychodzącym | Tak (dzwonek, wibracje) | Tak (wyświetlanie powiadomień, ID rozmówcy) |
| Przekierowanie na pocztę głosową | Tak | Nie |
| Dzwonek niestandardowy | Tak | Nie |
| Powiadomienia o nieodebranych połączeniach | Tak | Nie |
| Wskaźnik oczekującej wiadomości (zadzwoń na pocztę głosową) | Tak (telefonia) | Nie |
| Powiadomienia o wizualnej poczcie głosowej | Nie | Tak |
Przykłady niespójnego działania spowodowanego tym podziałem obowiązków:
- Za włączenie dzwonka lub wibracji odpowiadał moduł Telecom, a za wyświetlanie powiadomienia o połączeniu przychodzącym – dialer. Jeśli aplikacja do wybierania numerów uruchamia się powoli, dzwonek może zacząć dzwonić kilka sekund przed wyświetleniem powiadomienia o połączeniu przychodzącym.
- Za wyświetlanie powiadomień o nieodebranych połączeniach odpowiadał operator. Ponieważ funkcje zastrzeżone (np. ID rozmówcy Google) nie działają w przypadku tych powiadomień, może to powodować niespójności między powiadomieniami operatora a interfejsem aplikacji Telefon (np. dziennikiem połączeń).
Działanie w Androidzie 7.0 i nowszym
Nowa funkcja jest zaimplementowana w aplikacji Telefon w ramach Projektu Android Open Source (AOSP). Szczegółowe informacje znajdziesz w tych dokumentach:
- Powiadomienia o nieodebranych połączeniach
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/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/telephony/java/android/telephony/TelephonyManager.java
Telephony/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
Styl powiadomień o połączeniach na Androidzie 12 lub nowszym
W przypadku urządzeń z Androidem 12 lub nowszym, aby zapewnić spójne wrażenia użytkowników podczas połączeń, zalecamy, aby aplikacje używały stylu powiadomień
CallStyle w przypadku połączeń przychodzących i trwających.
Więcej informacji znajdziesz w artykule
Nowe powiadomienia o połączeniach telefonicznych umożliwiające określanie ważności połączeń przychodzących.
Implementacja
Producenci urządzeń mogą musieć zaktualizować komponenty Telecom/Telephony, które udostępniają interfejsy API dostępne dla domyślnego dialera.