In Android 10 ermöglicht der Dienst für Vorschläge für Telefonkonten, dass Nutzern beim Telefonieren Vorschläge für Telefonkonten angezeigt werden. Für Nutzer mit einem Gerät mit mehreren SIM-Karten und niedrigeren Tarifen für Anrufe innerhalb des Netzwerks ermittelt dieser Dienst beispielsweise zuerst den Mobilfunkanbieter des Aufgerufenen und schlägt dann vor, die SIM-Karte im selben Netzwerk wie der Aufgerufene zu verwenden.
Der Dienst für Vorschläge für Telefonkonten ist optional und kann auf Geräten mit Android 10 oder höher implementiert werden.
Implementierung
Wenn Sie Vorschläge für Telefonkonten implementieren möchten, implementieren Sie einen
PhoneAccountSuggestionService
-Dienst in einer App, die sich in /system/priv-app/
befindet. Der Dienst wird nicht abgefragt, wenn mehr als eine PhoneAccountSuggestionService
implementiert ist. Der Dienst muss die Berechtigung android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE
angeben.
Wenn ein Nutzer einen ausgehenden Anruf tätigt, bei dem weder das Standardkonto für ausgehende Anrufe noch das bevorzugte Telefonkonto für den Aufgerufenen festgelegt ist, wird der Telekommunikationsdienst an PhoneAccountSuggestionService
gebunden, um Informationen über die Konten zu erfassen, onAccountSuggestionRequest(String number)
wird angerufen und der Prozess für ausgehende Anrufe wird gesperrt.
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 eine Liste der vorgeschlagenen Telefonkonten anzeigen, aus der der Nutzer auswählen kann, um den Anruf zu starten.
PhoneAccountSuggestion
Verwenden Sie die Klasse PhoneAccountSuggestion, um Vorschläge zu machen.
Wenn der Dienst beispielsweise feststellt, dass der Angerufene beim selben Mobilfunkanbieter wie eine der SIM-Karten auf dem Gerät ist, sollte der Dienst das Telefonkonto mit REASON_INTRA_CARRIER
kennzeichnen.
Diese Informationen können dann dem Nutzer über den Dialer mitgeteilt werden.
Wenn der Nutzer beispielsweise das Gerät so konfiguriert hat, dass für alle Kontakte in einem geschäftlichen Google-Konto eine geschäftliche SIM verwendet wird, sollte der Dienst das Telefonkonto mit REASON_USER_SET
markieren und shouldAutoSelect
auf „true“ setzen, damit das Telefon das Auswahldialogfeld umgehen und den Anruf automatisch über das Telefonkonto tätigen kann.
Weitere Vorschläge finden Sie unter PhoneAccountSuggestion
.
Telefon
Wenn der Anruf den Status STATE_SELECT_PHONE_ACCOUNT
erreicht, muss der Dialer die Informationen aus PhoneAccountSuggestion
verwenden, um EXTRA_SUGGESTED_PHONE_ACCOUNTS
zu verarbeiten.
Dienst deaktivieren
Wenn du deine Implementierung für bestimmte Mobilfunkanbieter anpassen möchtest, kannst du den Dienst mit setComponentEnabledSetting
aktivieren oder deaktivieren.
Wenn der Dienst deaktiviert ist, wird er nicht abgefragt.
Implementierung der System-UI
Je nach Implementierung sind möglicherweise Änderungen an der System-UI erforderlich. Damit Nutzer beispielsweise festlegen können, dass alle Anrufe an einen bestimmten Kontakt über ein bestimmtes Telefonkonto erfolgen, müssen Sie für das Gerät einen benutzerdefinierten Einrichtungsablauf und eine benutzerdefinierte UI für Einstellungen implementieren.
Zertifizierungsstufe
Führen Sie die folgenden CTS-Tests aus, um Ihre Implementierung zu validieren:
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionServiceTest.java
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionTest.java