Vorschlag für ein Telefonkonto

In Android 10 ermöglicht der Telefonkonto-Vorschlagsdienst, dass Benutzern beim Tätigen eines Anrufs Vorschläge für Telefonkonten angezeigt werden. Beispielsweise identifiziert dieser Dienst für Benutzer mit einem Gerät mit mehreren SIM-Karten und niedrigeren Tarifen für netzwerkinterne Anrufe zunächst den Mobilfunkanbieter des Angerufenen und schlägt dann vor, die SIM-Karte im selben Netzwerk wie der Angerufene zu verwenden.

Der Vorschlagsdienst für Telefonkonten ist optional und kann auf Geräten mit Android 10 oder höher implementiert werden.

Implementierung

Um Telefonkontovorschläge zu implementieren, implementieren Sie einen PhoneAccountSuggestionService Dienst in einer App, die sich in /system/priv-app/ befindet. Der Dienst wird nicht abgefragt, wenn mehr als ein PhoneAccountSuggestionService implementiert ist. Der Dienst muss die Berechtigung android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE deklarieren.

Wenn ein Benutzer einen ausgehenden Anruf tätigt, bei dem weder das Standardkonto für ausgehende Telefone noch das bevorzugte Telefonkonto für den Angerufenen festgelegt ist, stellt der Telekommunikationsdienst eine Verbindung zu PhoneAccountSuggestionService her, um Informationen über die Konten zu sammeln, onAccountSuggestionRequest(String number) wird aufgerufen und der ausgehende Anruf Der Prozess wird ausgesetzt.

PhoneAccountSuggestionService muss suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) mit der von onAccountSuggestionRequest(String number) zurückgegebenen Nummer aufrufen.

Wenn suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) aufgerufen wird, gibt der Telekommunikationsdienst eine Liste der vorgeschlagenen Telefonkonten zurück. Der Dialer muss dann die Liste der vorgeschlagenen Telefonkonten anzeigen, aus der der Benutzer für den Anruf auswählen kann.

PhoneAccountSuggestion

Um Vorschläge zu machen, verwenden Sie die PhoneAccountSuggestion- Klasse. Wenn der Dienst beispielsweise feststellt, dass der Angerufene denselben Mobilfunkanbieter nutzt wie eine der SIM-Karten im Gerät, sollte der Dienst das Telefonkonto mit REASON_INTRA_CARRIER kennzeichnen. Diese Informationen können dann im Dialer an den Benutzer übermittelt werden.

Wenn der Benutzer beispielsweise das Gerät so konfiguriert hat, dass für alle Kontakte in einem geschäftlichen Google-Konto eine Arbeits-SIM-Karte verwendet wird, sollte der Dienst das Telefonkonto mit REASON_USER_SET markieren und shouldAutoSelect auf „True“ setzen, damit der Dialer den Auswahldialog umgehen kann und tätigen Sie den Anruf automatisch über das Telefonkonto.

Informationen zu anderen Vorschlägen finden Sie unter PhoneAccountSuggestion .

Dialer

Wenn der Anruf in den Status STATE_SELECT_PHONE_ACCOUNT wechselt, muss der Dialer die Informationen von PhoneAccountSuggestion verwenden, um EXTRA_SUGGESTED_PHONE_ACCOUNTS zu verarbeiten.

Deaktivierung des Dienstes

Um Ihre Implementierung für bestimmte Netzbetreiber anzupassen, können Sie den Dienst mit setComponentEnabledSetting aktivieren oder deaktivieren. Der Dienst wird nicht abgefragt, wenn er deaktiviert ist.

Implementierung der System-Benutzeroberfläche

Abhängig von Ihrer Implementierung können Änderungen an der Systembenutzeroberfläche erforderlich sein. Damit Benutzer beispielsweise festlegen können, dass alle Anrufe an einen bestimmten Kontakt über ein bestimmtes Telefonkonto getätigt werden, müssen Sie einen benutzerdefinierten Einrichtungsablauf und eine Benutzeroberfläche für Einstellungen für das Gerät implementieren.

Validierung

Führen Sie zur Validierung Ihrer Implementierung die folgenden CTS-Tests aus: