Datentarife implementieren

Unter Android 9 können Mobilfunkanbieter Nutzern direkt in den Einstellungen autorisierte Tarifdetails zur Verfügung stellen, um Verwirrung und Supportanrufe zu reduzieren. Auf Geräten mit Android 4.0 und höher können Nutzer ihre anbieterspezifischen Datentarifdetails manuell in den Einstellungen konfigurieren, z. B. Warnungen und Limits festlegen, um ihre Datennutzung zu verwalten.

Konfiguration durch den Mobilfunkanbieter

Um Datentarife zu konfigurieren, können Mobilfunkanbieter ihren vorhandenen Android-Apps mithilfe der SubscriptionPlan-APIs Funktionen hinzufügen. Die APIs sind so konzipiert, dass sie eine Vielzahl von Datentariftypen unterstützen, darunter wiederkehrende und nicht wiederkehrende Tarife sowie Tarife, die sich im Laufe der Zeit ändern.

Hier sehen Sie ein Beispiel für die Konfiguration eines gängigen Datentarifs, der monatlich wiederkehrt:

SubscriptionManager sm =
    context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
    SubscriptionPlan.Builder.createRecurringMonthly(
            ZonedDateTime.parse("2016-12-03T10:00:00Z"))
        .setTitle("G-Mobile")
        .setDataLimit(4_000_000_000L,
            SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
        .setDataUsage(200_493_293L, dataUsageTimestamp)
        .build()));

Das Gerät lässt es nur unter einer der folgenden Bedingungen zu, dass eine App Datentarife konfiguriert:

  • Für die SIM-Karte wurde explizit eine App definiert, die sie verwalten kann, wie in SubscriptionManager.canManageSubscription() definiert.
  • Der Mobilfunkanbieter hat den Wert KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING über CarrierConfigManager gesendet, um anzugeben, welche App die Datentarife des Mobilfunkanbieters verwalten kann.
  • Auf dem Gerät ist eine App im System-Image integriert, die die Berechtigung MANAGE_SUBSCRIPTION_PLANS hat.

Die ersten beiden Bedingungen ermöglichen es dem Nutzer, die Carrier-App zu installieren, ohne dass sie ab Werk im System-Image vorinstalliert sein muss. Das Betriebssystem erzwingt (und das CDD erfordert), dass alle konfigurierten Tarifdetails geschützt sind und nur der Carrier-App zur Verfügung gestellt werden, die die Details ursprünglich dem Betriebssystem bereitgestellt hat.

Ein vorgeschlagenes Design sieht vor, dass eine Mobilfunkanbieter-App einen Inaktivitätswartungsdienst verwendet, um die Details des Datentarifs täglich zu aktualisieren. Mobilfunkanbieter können jedoch eine Vielzahl von Mechanismen verwenden, z. B. den Empfang von Datentarifdetails über interne SMS-Nachrichten des Mobilfunkanbieters. Wartungsdienste im Leerlauf werden am besten mit einem JobScheduler-Job implementiert, der setRequiresDeviceIdle() und setRequiresCharging() verwendet.

Nutzung nach Betriebssystem

Das Betriebssystem verwendet die von den SubscriptionPlan APIs bereitgestellten Details zum Datentarif auf folgende Weise:

  • Die Tarifdetails werden über die Einstellungen-App angezeigt, um Nutzern genaue Daten zur Datennutzung zu präsentieren und direkte Deeplinks zur App des Mobilfunkanbieters für Upgrade-/Upselling-Möglichkeiten bereitzustellen.
  • Die Schwellenwerte für die Warnung zur Datennutzung und die Benachrichtigung zum Limit werden automatisch anhand der Tarifdetails konfiguriert. Die Warnung wird auf 90% des Limits festgelegt.
  • Wenn der Mobilfunkanbieter vorübergehend angibt, dass das Netzwerk überlastet ist, verzögert das Betriebssystem JobScheduler-Jobs, die zeitlich verschoben werden können, um die Last im Netzwerk des Mobilfunkanbieters zu verringern.
  • Wenn der Mobilfunkanbieter vorübergehend angibt, dass das Netzwerk nicht getaktet ist, kann das Betriebssystem die Mobilfunkverbindung als „nicht getaktet“ melden, bis der Mobilfunkanbieter die Überschreibung aufhebt oder der Zeitüberschreitungswert (falls angegeben) erreicht ist.
  • Das Betriebssystem vergleicht die aktuelle Datennutzung des Nutzers mit dem allgemeinen Datenlimit und schätzt die normale Datennutzung des Nutzers am Ende des Abrechnungszeitraums. Es weist konservativ 10% aller überschüssigen Daten zu, um die Nutzerfreundlichkeit zu verbessern, z. B. indem Apps Daten über mehrere Pfade verwenden können.

Anpassung und Validierung

In den Android-Einstellungen werden alle vom Mobilfunkanbieter konfigurierten Details zum Tarif angezeigt. So sehen Nutzer den genauesten Status ihrer Beziehung zum Mobilfunkanbieter und können über die App des Mobilfunkanbieters ihren Tarif upgraden. Gerätehersteller, die die Einstellungen anpassen, sollten diese Details weiterhin anzeigen.

Die auf dieser Seite beschriebenen SubscriptionManager-APIs werden von android.telephony.cts.SubscriptionManagerTest getestet. So wird sichergestellt, dass Details zum Datentarif von Carrier-Apps konfiguriert werden können und Änderungen im Betriebssystem weitergegeben werden.