Microsoft zaczął udostępniać aktualizację Teams na Androida, aby naprawić błąd, który uniemożliwiał niektórym użytkownikom wykonywanie połączeń alarmowych. Microsoft współpracował nad rozwiązaniem z Google, który dodatkowo 4 stycznia zamierza wypuścić aktualizację Androida, aby zapobiec pojawianiu się tego błędu również w innych aplikacjach.
Ustalono, że źródło problemu tkwi w metodach adjustAttemptsforEmergency i sortSimPhoneAccountsForEmergency wewnątrz klasy CreateConnectionProcessor. Pierwsza z nich decyduje, która instancja PhoneAccunt powinna obsługiwać połączenie alarmowe. Aplikacje z funkcją połączeń, takie jak Teams, tworzą własne instancje PhoneAccount. Nie odpowiadają one jednak za połączenia alarmowe. Później, na skutek różnych zawiłości, adjustAttemptsforEmergency próbuje uzyskać "preferowaną przez użytkownika" instancję PhoneAccount, sortując je na liście. Problem w tym, że wyżej mogły znaleźć się instancje bez flagi APABILITY_PLACE_EMERGENCY_CALLS, takie jak Teams, który w ogóle nie powinien być brany pod uwagę.
Microsoft is rolling out an update to Teams that fixes the issue with spawning too many duplicate PhoneAccounts, in some cases triggering an Android bug that blocks emergency calls @linuxct tested and decompiled the latest version to verify the issue is fix in the app. https://t.co/26Je2sZWCS
— Mishaal Rahman (@MishaalRahman) December 11, 2021
Nie jest to jedyne źródło problemu — w takim wypadku wszystkie telefony z zainstalowanym Teams nie mogłyby dzwonić pod 112 czy 911. Sprawa jest jeszcze bardziej skomplikowana. Bez wchodzenia w szczegóły techniczne, chodziło o to, że Teams tworzył wiele instancji PhoneAccount i wydarzało się to nawet bez logowania. Ostatecznie prowadziło to do buga blokującego połączenia alarmowe.
Microsoft wcześniej zalecał odinstalowanie, a następnie ponowne zainstalowanie aplikacji Teams na Androida w celu rozwiązania problemu, ale teraz nie jest to potrzebne. Wystarczy zaktualizować Teams do najnowszej wersji.