In Android 10 können Nutzer über den Dienst für Vorschläge zu Telefonkonten Vorschläge für Telefonkonten erhalten, wenn sie einen Anruf starten. Bei Nutzern mit einem Gerät mit mehreren SIM-Karten und niedrigeren Tarifen für Anrufe innerhalb desselben Netzwerks identifiziert dieser Dienst beispielsweise zuerst den Mobilfunkanbieter des Anrufers und schlägt dann vor, die SIM-Karte im selben Netzwerk wie der Anrufer 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 startet, für den weder das Standard-Telefonkonto für ausgehende Anrufe noch das bevorzugte Telefonkonto für den Anrufer festgelegt ist, bindet der Telekommunikationsdienst an PhoneAccountSuggestionService
, um Informationen zu den Konten zu erfassen. onAccountSuggestionRequest(String number)
wird aufgerufen und der Vorgang für ausgehende Anrufe 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 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 im Dialer an den Nutzer weitergegeben 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-Karte verwendet wird, sollte der Dienst das Telefonkonto mit REASON_USER_SET
kennzeichnen und shouldAutoSelect
auf „wahr“ setzen, damit der Dialer das Auswahldialogfeld überspringen und den Anruf automatisch über das Telefonkonto starten kann.
Weitere Informationen zu anderen Vorschlägen 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 Sie Ihre Implementierung für bestimmte Mobilfunkanbieter anpassen möchten, können Sie 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. Wenn Sie Nutzern beispielsweise die Möglichkeit geben möchten, anzugeben, dass alle Anrufe an einen bestimmten Kontakt über ein bestimmtes Telefonkonto erfolgen, müssen Sie einen benutzerdefinierten Einrichtungsablauf und eine benutzerdefinierte Einstellungsoberfläche für das Gerät implementieren.
Zertifizierungsstufe
Führen Sie die folgenden CTS-Tests aus, um Ihre Implementierung zu validieren: