Vorschlag für Telefonkonto

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: