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

В 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: