Sugestia 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żytkownika urządzenia z kilkoma kartami SIM i niższymi stawkami za połączenia w sieci ta usługa najpierw identyfikuje operatora odbiorcy, a następnie sugeruje użycie karty SIM w tej samej sieci co osoba dzwoniąca.

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 konta telefonicznego, zaimplementuj 1 usługę PhoneAccountSuggestionService w aplikacji, która znajduje się w regionie /system/priv-app/. 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, gdy dla rozmówcy nie jest ustawione domyślne konto wychodzące ani preferowane konto telefoniczne, usługa telekomunikacyjna łączy się z PhoneAccountSuggestionService, aby zebrać informacje o kontach, onAccountSuggestionRequest(String number), a proces połączeń wychodzących 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 kierowane jest połączenie, korzysta z tej samej sieci komórkowej co jedna z kart SIM w urządzeniu, usługa powinna oznaczyć konto telefonu jako REASON_INTRA_CARRIER. Te informacje można następnie przekazać użytkownikowi w telefonie.

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łączać i wyłączać usługę za pomocą narzędzia 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 konieczne mogą być zmiany w interfejsie systemu. Aby na przykład umożliwić użytkownikom określenie, że wszystkie połączenia z danym kontaktem mają być wykonywane z określonego konta telefonu, musisz wdrożyć niestandardowy proces konfiguracji i interfejs ustawień dla urządzenia.

Weryfikacja

Aby zweryfikować implementację, uruchom te testy CTS: