Предложение учетной записи телефона

В Android 10 сервис подсказок учётных записей телефона позволяет показывать пользователям рекомендации по учётным записям при совершении вызова. Например, для пользователей устройств с несколькими SIM-картами и более низкими тарифами на внутрисетевые звонки этот сервис сначала определяет оператора вызываемого абонента, а затем предлагает использовать SIM-карту той же сети, что и вызываемый абонент.

Услуга предложения аккаунта телефона является опциональной и может быть реализована на устройствах под управлением Android 10 или выше.

Выполнение

Чтобы реализовать предложения для учётных записей телефона, реализуйте одну службу PhoneAccountSuggestionService в приложении, расположенном в /system/priv-app/ . Служба не будет опрашиваться, если реализовано более одной PhoneAccountSuggestionService . Служба должна объявить разрешение android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE .

Когда пользователь совершает исходящий вызов, и для вызываемого абонента не установлена ​​ни учетная запись исходящего телефона по умолчанию , ни предпочитаемая учетная запись телефона , телекоммуникационная служба привязывается к PhoneAccountSuggestionService для сбора информации об учетных записях, вызывается onAccountSuggestionRequest(String number) , и процесс исходящего вызова приостанавливается.

PhoneAccountSuggestionService должен вызвать suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) с номером, возвращаемым onAccountSuggestionRequest(String number) .

При вызове suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) служба связи возвращает список предлагаемых учётных записей. Затем программа набора номера должна отобразить список предлагаемых учётных записей, чтобы пользователь мог выбрать одну из них для совершения звонка.

Предложение по учетной записи телефона

Для создания предложений используйте класс PhoneAccountSuggestion . Например, если служба определяет, что вызываемый абонент подключен к тому же оператору, что и одна из SIM-карт в устройстве, она должна пометить учётную запись телефона как REASON_INTRA_CARRIER . Эта информация затем может быть передана пользователю в программе набора номера.

Например, в ситуации, когда пользователь настроил устройство на использование рабочей SIM-карты для всех контактов в рабочей учетной записи Google, служба должна пометить учетную запись телефона как REASON_USER_SET и установить shouldAutoSelect на true, чтобы разрешить дозвонщику обходить диалоговое окно выбора и автоматически совершать вызовы с использованием учетной записи телефона.

Информацию о других предложениях см. в разделе PhoneAccountSuggestion .

Дозвонщик

Когда вызов переходит в состояние STATE_SELECT_PHONE_ACCOUNT , дозвонщик должен использовать информацию из PhoneAccountSuggestion для обработки EXTRA_SUGGESTED_PHONE_ACCOUNTS .

Отключить службу

Чтобы настроить реализацию для конкретных операторов, вы можете включить или отключить службу с помощью setComponentEnabledSetting . Если служба отключена, она не будет запрашиваться.

Реализация системного пользовательского интерфейса

В зависимости от вашей реализации могут потребоваться изменения в пользовательском интерфейсе системы. Например, чтобы пользователи могли указать, что все вызовы определённому контакту должны совершаться с определённой учётной записи телефона, необходимо реализовать индивидуальный процесс настройки и пользовательский интерфейс для устройства.

Проверка

Для проверки вашей реализации выполните следующие тесты CTS: