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 kierowane jest 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 do połączeń wychodzących 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 zostaje zawieszony.

Funkcja PhoneAccountSuggestionService musi wywołać funkcję suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions), podając numer zwrócony przez funkcję onAccountSuggestionRequest(String number).

Po wywołaniu metody suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) usługa telekomunikacyjna zwraca 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 np. usługa określi, że osoba, do której należy numer, korzysta z tej samej sieci komórkowej co jedna z kart SIM na 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ą REASON_USER_SETi ustawić shouldAutoSelect na wartość „prawda”, aby umożliwić dialerowi 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ę pod kątem konkretnych operatoró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ń dla urządzenia.

Weryfikacja

Aby zweryfikować implementację, uruchom te testy CTS: