Propozycja konta telefonicznego

W systemie Android 10 usługa sugestii dotyczących kont telefonicznych umożliwia wyświetlanie użytkownikom sugestii dotyczących kont telefonicznych podczas wykonywania połączenia. Na przykład w przypadku użytkowników posiadających urządzenie z wieloma kartami SIM i niższymi stawkami za połączenia wewnątrzsieciowe ta usługa najpierw identyfikuje operatora odbiorcy, a następnie sugeruje korzystanie z karty SIM w tej samej sieci co odbiorca.

Usługa sugerowania konta telefonicznego jest opcjonalna i można ją wdrożyć na urządzeniach z systemem Android 10 lub nowszym.

Realizacja

Aby zaimplementować sugestie dotyczące kont telefonicznych, zaimplementuj jedną usługę PhoneAccountSuggestionService w aplikacji znajdującej się w /system/priv-app/ . Do usługi nie jest wysyłane zapytanie, jeśli zaimplementowano więcej niż jedną PhoneAccountSuggestionService . Usługa musi zadeklarować uprawnienie android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE .

Gdy użytkownik wykonuje połączenie wychodzące, gdy dla odbiorcy nie jest ustawione ani domyślne konto telefonu wychodzącego , ani preferowane konto telefonu , usługa telekomunikacyjna łączy się z PhoneAccountSuggestionService w celu zebrania informacji o kontach, wywoływana jest funkcja onAccountSuggestionRequest(String number) i połączenie wychodzące proces zostaje zawieszony.

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

Po wywołaniu suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) usługa telekomunikacyjna zwraca listę sugerowanych kont telefonicznych. Dialer musi wówczas wyświetlić listę sugerowanych kont telefonicznych, z których użytkownik będzie mógł wybrać, aby wykonać połączenie.

Sugestia dotycząca konta telefonicznego

Aby zgłaszać sugestie, użyj klasy PhoneAccountSuggestion . Na przykład, jeśli usługa ustali, że odbiorca korzysta z tego samego operatora, co jedna z kart SIM w urządzeniu, powinna oznaczyć konto telefoniczne jako REASON_INTRA_CARRIER . Informacja ta może być następnie przekazana użytkownikowi w dialerze.

Przykładowo, w sytuacji, gdy użytkownik skonfigurował urządzenie tak, aby korzystało z służbowej karty SIM dla wszystkich kontaktów na służbowym koncie Google, usługa powinna oznaczyć konto telefonu wartością REASON_USER_SET i ustawić shouldAutoSelect na wartość true, aby dialer mógł ominąć okno wyboru i automatycznie nawiąż połączenie za pomocą konta telefonu.

Aby uzyskać informacje na temat innych sugestii, zobacz PhoneAccountSuggestion .

Dialer

Kiedy połączenie przejdzie do stanu STATE_SELECT_PHONE_ACCOUNT , dialer musi użyć informacji z PhoneAccountSuggestion , aby obsłużyć EXTRA_SUGGESTED_PHONE_ACCOUNTS .

Wyłączenie usługi

Aby dostosować implementację do konkretnych operatorów, możesz włączyć lub wyłączyć usługę za pomocą setComponentEnabledSetting . Usługa nie jest pytana, jeśli jest wyłączona.

Implementacja interfejsu użytkownika systemu

W zależności od implementacji mogą być wymagane zmiany w interfejsie użytkownika systemu. Na przykład, aby umożliwić użytkownikom określenie, że wszystkie połączenia z określonym kontaktem będą wykonywane z określonego konta telefonicznego, należy zaimplementować dostosowany interfejs użytkownika dotyczący konfiguracji i ustawień urządzenia.

Walidacja

Aby sprawdzić poprawność implementacji, uruchom następujące testy CTS: