In Android 10 können Nutzer durch den Dienst für Vorschläge für 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 des Netzes wird beispielsweise zuerst der Mobilfunkanbieter des Angerufenen ermittelt und dann vorgeschlagen, die SIM-Karte im selben Netzwerk wie der Angerufene 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 Konten auf dem Smartphone implementieren möchten, müssen Sie einen
PhoneAccountSuggestionService
-Dienst in einer App implementieren, 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 Nutzer einen ausgehenden Anruf startet und weder das Standardkonto für ausgehende Anrufe noch das bevorzugte Telefonkonto für den Empfänger festgelegt ist, wird der Telekommunikationsdienst an PhoneAccountSuggestionService
gebunden, um Informationen zu den Konten zu erfassen. onAccountSuggestionRequest(String number)
wird aufgerufen und der Prozess für ausgehende Anrufe wird angehalten.
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 mit vorgeschlagenen Telefonkonten zurück. Das Wählfeld muss dann die Liste der vorgeschlagenen Telefonkonten anzeigen, aus denen 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 Anrufer denselben Mobilfunkanbieter wie eine der SIM-Karten im Gerät verwendet, 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 das Gerät beispielsweise 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
kennzeichnen und shouldAutoSelect
auf „true“ setzen, damit das Wählfeld den Auswahlbildschirm umgehen und den Anruf automatisch über das Telefonkonto starten kann.
Informationen zu anderen Vorschlägen finden Sie unter PhoneAccountSuggestion
.
Telefon
Wenn der Anruf in den Status STATE_SELECT_PHONE_ACCOUNT
wechselt, muss der Dialer die Informationen aus PhoneAccountSuggestion
verwenden, um EXTRA_SUGGESTED_PHONE_ACCOUNTS
zu verarbeiten.
Dienst deaktivieren
Wenn Sie Ihre Implementierung für bestimmte Transportunternehmen anpassen möchten, können Sie den Dienst mit setComponentEnabledSetting
aktivieren oder deaktivieren.
Der Dienst wird nicht abgefragt, wenn er deaktiviert ist.
Implementierung der System-UI
Je nach Implementierung sind möglicherweise Änderungen an der System-UI erforderlich. Wenn Sie beispielsweise Nutzern erlauben möchten, festzulegen, dass alle Anrufe an einen bestimmten Kontakt über ein bestimmtes Telefonkonto erfolgen, müssen Sie einen benutzerdefinierten Einrichtungsvorgang und eine benutzerdefinierte Einstellungs-UI für das Gerät implementieren.
Zertifizierungsstufe
Führen Sie die folgenden CTS-Tests aus, um Ihre Implementierung zu validieren: