Datenpläne implementieren

Mit Android 9 können Mobilfunkanbieter Nutzern in der Einstellungen App direkt gültige Abodetails zur Verfügung stellen, um Verwirrung zu vermeiden und Supportanfragen zu reduzieren. Auf Geräten mit Android 4.0 und höher können Nutzer die anbieterspezifischen Datentarife in der App „Einstellungen“ manuell konfigurieren und beispielsweise Warnungen und Limits zur Datennutzung festlegen.

Konfiguration nach Mobilfunkanbieter

Um Datentarife zu konfigurieren, können Mobilfunkanbieter ihren vorhandenen Android-Apps mithilfe der SubscriptionPlan APIs Funktionen hinzufügen. Die APIs unterstützen eine Vielzahl von Datentariftypen, einschließlich wiederkehrender und nicht wiederkehrender Tarife sowie Tarife, die sich im Laufe der Zeit ändern.

Hier ein Beispiel für die Konfiguration eines gängigen Datentarifs, der monatlich wiederkehrend ist:

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()));

Auf dem Gerät kann eine App nur unter einer der folgenden Bedingungen Datentarife konfigurieren:

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

Die ersten beiden Bedingungen ermöglichen es, die App des Mobilfunkanbieters vom Nutzer zu installieren, ohne dass sie im Werk im System-Image vorinstalliert werden muss. Das Betriebssystem erzwingt (und die CDD erfordert), dass alle konfigurierten Details zum Datentarif geschützt und nur der Mobilfunkanbieter-App zur Verfügung gestellt werden, die die Details ursprünglich an das Betriebssystem gesendet hat.

Eine vorgeschlagene Lösung besteht darin, dass eine Mobilfunkanbieter-App einen Inaktivitäts-Wartungsservice verwendet, um die Details des Datentarifs täglich zu aktualisieren. Mobilfunkanbieter können jedoch eine Vielzahl von Mechanismen verwenden, z. B. den Empfang von Details zum Datentarif über anbieterinterne SMS. Inaktive Wartungsdienste 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 Datentarifdetails so:

  • Die Abodetails werden über die Einstellungen-App angezeigt, um Nutzern genaue Daten zur Nutzung zu präsentieren und direkte Deeplinks zur App des Mobilfunkanbieters für Upgrade-/Upselling-Möglichkeiten bereitzustellen.
  • Die Schwellenwerte für die Warnung und Benachrichtigung zur Datennutzung werden automatisch basierend auf den Abodetails 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 zeitversetzt ausgeführt werden können, um die Belastung des Mobilfunknetzes zu verringern.
  • Wenn der Mobilfunkanbieter vorübergehend angibt, dass das Netzwerk „unbegrenzt“ ist, kann das Betriebssystem die Mobilfunkverbindung als „unbegrenzt“ melden, bis der Mobilfunkanbieter die Überschreibung aufhebt oder bis der Zeitüberschreitungswert (falls angegeben) erreicht wird.
  • Durch den Vergleich der aktuellen Datennutzung des Nutzers mit dem Gesamtdatenlimit schätzt das Betriebssystem die normale Datennutzung des Nutzers am Ende des Abrechnungszeitraums und weist konservativ 10% der überschüssigen Daten zu, um die Nutzerfreundlichkeit zu verbessern, z. B. indem Apps Multipath-Daten verwenden können.

Anpassung und Validierung

In den Android-Einstellungen werden alle vom Mobilfunkanbieter konfigurierten Details zum Datentarif angezeigt. So sehen Nutzer den genauen Status ihrer Mobilfunkverbindung und können über die App des Mobilfunkanbieters ihr Abo upgraden. Geräteherstellern, die die Einstellungen-App anpassen, wird empfohlen, diese Details weiterhin anzugeben.

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