Propozycja dotycząca konta telefonu

W Androidzie 10 usługa sugestii kont telefonicznych umożliwia użytkownikom wyświetlanie sugestii dotyczących kont telefonicznych podczas nawiązywania połączeń. Na przykład w przypadku użytkowników z urządzeniem z wieloma kartami SIM i niższymi stawkami za połączenia w ramach sieci usługa najpierw identyfikuje operatora osoby, do której jest kierowane połączenie, a potem sugeruje użycie karty SIM w ramach tej samej sieci.

Usługa sugestii kont telefonicznych jest opcjonalna i może być implementowana na urządzeniach z Androidem w wersji 10 lub nowszej.

Implementacja

Aby wdrożyć sugestie dotyczące kont telefonów, w aplikacji znajdującej się w /system/priv-app/ wdrożyć jeden PhoneAccountSuggestionService usługę. Usługa nie jest wywoływana, jeśli zaimplementowano więcej niż 1 element PhoneAccountSuggestionService. Usługa musi zadeklarować uprawnienie android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE.

Gdy użytkownik nawiązuje połączenie wychodzące, a ani domyślne konto telefonu wychodzącego, ani preferowane konto telefonu nie są ustawione dla osoby, do której jest kierowane połączenie, usługa telekomunikacyjna łączy się z PhoneAccountSuggestionService, aby zebrać informacje o kontach, wywołuje się onAccountSuggestionRequest(String number), a proces połączenia wychodzącego jest zawieszony.

PhoneAccountSuggestionService musi wywołać funkcję suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) z numerem zwróconym przez funkcję onAccountSuggestionRequest(String number).

Gdy wywołasz usługę telekomunikacyjną suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions), zwraca ona listę sugerowanych kont telefonicznych. Dialer musi wyświetlić listę sugerowanych kont telefonicznych, z których użytkownik może wybrać konto, aby nawiązać połączenie.

PhoneAccountSuggestion

Aby tworzyć sugestie, użyj klasy PhoneAccountSuggestion. Jeśli na przykład usługa stwierdzi, że osoba, do której kierowane jest połączenie, korzysta z usług tego samego operatora, co jedna z kart SIM w urządzeniu, usługa powinna oznaczyć konto telefonu jako REASON_INTRA_CARRIER. Te informacje mogą być następnie przekazywane użytkownikowi w dialerze.

Na przykład w sytuacji, gdy użytkownik skonfigurował urządzenie do używania karty SIM służbowej dla wszystkich kontaktów na koncie Google służbowym, usługa powinna oznaczyć konto telefonu za pomocą parametru REASON_USER_SET i ustawić parametr shouldAutoSelect na wartość „prawda”, aby umożliwić wybierarce pominięcie okna wyboru i automatyczne nawiązanie połączenia za pomocą konta telefonu.

Informacje o innych sugestiach znajdziesz w sekcji PhoneAccountSuggestion.

Dialer

Gdy połączenie przechodzi w stan STATE_SELECT_PHONE_ACCOUNT, wybierarka musi używać informacji z PhoneAccountSuggestion do obsługi EXTRA_SUGGESTED_PHONE_ACCOUNTS.

Wyłączanie usługi

Aby dostosować implementację do konkretnych przewoźników, możesz włączyć lub wyłączyć usługę za pomocą setComponentEnabledSetting. Jeśli usługa jest wyłączona, nie jest wysyłane do niej żadne zapytanie.

Implementacja interfejsu systemu

W zależności od implementacji może być konieczna zmiana interfejsu systemu. Aby na przykład umożliwić użytkownikom określenie, że wszystkie połączenia z danym kontaktem mają być wykonywane z konkretnego konta telefonu, musisz wdrożyć niestandardowy proces konfiguracji i interfejs ustawień na urządzeniu.

Weryfikacja

Aby zweryfikować implementację, uruchom te testy CTS: