데이터 요금제 구현

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

다음 조건 중 하나에서만 앱이 기기에서 데이터 요금제를 구성할 수 있습니다.

  • SIM 카드가 SubscriptionManager.canManageSubscription()에 정의된 대로 관리 가능한 앱을 명시적으로 정의함
  • 이동통신사에서 이동통신사의 데이터 요금제를 관리할 수 있는 앱을 나타내기 위해 CarrierConfigManager를 통해 KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING 값을 푸시함
  • 기기에 MANAGE_SUBSCRIPTION_PLANS 권한이 있는 시스템 이미지에 내장된 앱이 있음

처음 두 가지 조건이 충족되면 공장 출하 시 시스템 이미지에 미리 설치할 필요 없이 사용자가 이동통신사 앱을 설치할 수 있습니다. 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 내에서 변경사항을 전파할 수 있습니다.