Android 9 では、携帯通信会社が信頼性のあるデータプランの詳細情報を設定アプリで直接表示することで、ユーザーにとってわかりやすい通話サポートを提供できます。Android 4.0 以降のデバイスでは、データ使用量を管理するための警告と制限を設定するなど、携帯通信会社固有のデータプランの詳細をユーザーが設定アプリから手動で構成できます。
携帯通信会社による設定
データプランの設定は、携帯通信会社が SubscriptionPlan
API を使用して既存の Android アプリに機能を追加できます。API は、継続プランや非継続プラン、使用時間に応じた課金プランなど、さまざまなデータプラン タイプに対応するように設計されています。
毎月更新する一般的なデータプランを設定する方法について、次に例を示します。
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()));
デバイスでは、アプリを使用して、次のいずれかの条件のデータプランのみを設定できます。
SubscriptionManager.canManageSubscription()
で定義されるとおり、データプランを管理するアプリが SIM カードで明示的に定義されている。- 携帯通信会社が
CarrierConfigManager
を使用してKEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING
の値をプッシュし、どのアプリが携帯通信会社のデータプランを管理するかを明示的に示している。 - デバイスのシステム イメージに
MANAGE_SUBSCRIPTION_PLANS
権限を持つアプリが組み込まれている。
最初の 2 つの条件によって出荷前のシステム イメージへの事前インストールが不要となり、携帯通信会社のアプリをユーザーがインストールできるようになります。OS によって設定済みのすべてのデータプランの詳細が保護され、最初に OS に詳細が提供された携帯通信会社のアプリのみが利用できるようになります(CDD の要件)。
推奨される設計としては、携帯通信会社のアプリがアイドル時のメンテナンス サービスを使用してデータプランの詳細を毎日更新する方法などがありますが、携帯通信会社はキャリア内部の SMS メッセージを通じてデータプランの詳細を送信するなど、さまざまな方法を自由に選択できます。アイドル時のメンテナンス サービスは、setRequiresDeviceIdle()
と setRequiresCharging()
を使用する JobScheduler
ジョブで実装するのが最も適しています。
OS によるデータ使用量
OS は、SubscriptionPlan API によって提供されるデータプランの詳細を次のように使用します。
- プランの詳細は、正確なデータ使用量およびアップグレード / アップセル用の携帯通信会社のアプリへの直接ディープリンクで表示するため、設定アプリを通じてユーザーに提示されます。
- データ使用量の警告と制限の通知のしきい値は、プランの詳細に基づいて自動的に設定されます(警告は制限の 90% で表示されるように設定)。
- 携帯通信会社のネットワークが一時的に「混雑している」場合、OS はタイムシフト可能な JobScheduler ジョブを遅延させ、ネットワークの負荷を軽減します。
- 携帯通信会社のネットワークが一時的に「定額制」である場合、携帯通信会社がオーバーライドをクリアするか、タイムアウト値(指定されている場合)に達するまで、OS はモバイル接続を「定額制」として報告します。
- OS は、ユーザーの現在のデータ使用量と全体的なデータの上限を比較することで、請求期間の最後にユーザーの通常のデータ使用量を予測します。また、たとえばアプリにマルチパス データの使用を許可し、余分なデータのうち 10% を慎重に割り当てることによってユーザー エクスペリエンスを改善します。
カスタマイズと検証
Android 設定アプリには、携帯通信会社が設定したすべてのデータプランの詳細が表示され、携帯通信会社に関する最も正確な状態や、プランをアップグレードするアプリへのパスをユーザーが確認できます。設定アプリをカスタマイズしたデバイス メーカーには、こうした詳細の表示を継続するようおすすめします。
上記の SubscriptionManager
API は android.telephony.cts.SubscriptionManagerTest
によってテストされます。これにより、データプランの詳細が携帯通信会社のアプリによって設定され、変更が OS 内に適用されるようになります。