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:
-
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionServiceTest.java
-
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionTest.java