การนำแผนข้อมูลไปใช้

Android 9 ช่วยให้ผู้ให้บริการสามารถแจ้งรายละเอียดแผนที่น่าเชื่อถือแก่ผู้ใช้ในแอปการตั้งค่าได้โดยตรง เพื่อลดความสับสนของผู้ใช้และการโทรเพื่อรับการสนับสนุน บนอุปกรณ์ที่ใช้ Android 4.0 ขึ้นไป ผู้ใช้สามารถกำหนดค่ารายละเอียดแผนข้อมูลเฉพาะของผู้ให้บริการได้ด้วยตนเองในแอปการตั้งค่า เช่น การตั้งค่าคำเตือนและขีดจำกัดในการจัดการการใช้ข้อมูล

การกำหนดค่าโดยผู้ให้บริการ

ในการกำหนดค่าแผนข้อมูล ผู้ให้บริการสามารถเพิ่มฟังก์ชันการทำงานให้กับแอป Android ที่มีอยู่ได้โดยใช้ SubscriptionPlan API 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()
  • ผู้ให้บริการได้พุชค่า KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING ผ่าน CarrierConfigManager เพื่อระบุว่าแอปใดสามารถจัดการแผนข้อมูลของผู้ให้บริการได้
  • อุปกรณ์มีแอปที่สร้างไว้ในอิมเมจระบบที่มีสิทธิ์ MANAGE_SUBSCRIPTION_PLANS

เงื่อนไขสองข้อแรกทำให้ผู้ใช้สามารถติดตั้งแอปผู้ให้บริการได้ โดยไม่ต้องติดตั้งล่วงหน้าในอิมเมจระบบที่โรงงาน ระบบปฏิบัติการบังคับใช้ (และ CDD กำหนด) ว่ารายละเอียดแผนข้อมูลที่กำหนดค่าไว้ทั้งหมดได้รับการปกป้องและพร้อมใช้งานเฉพาะกับแอพผู้ให้บริการที่ให้รายละเอียดแก่ระบบปฏิบัติการตั้งแต่แรกเท่านั้น

การออกแบบหนึ่งที่แนะนำคือให้แอปของผู้ให้บริการใช้บริการบำรุงรักษาที่ไม่ได้ใช้งานเพื่ออัปเดตรายละเอียดแผนข้อมูลทุกวัน แต่ผู้ให้บริการสามารถใช้กลไกที่หลากหลายได้ฟรี เช่น การรับรายละเอียดแผนข้อมูลผ่านข้อความ SMS ภายในของผู้ให้บริการ บริการบำรุงรักษาที่ไม่ได้ใช้งานจะถูกนำไปใช้งานได้ดีที่สุดกับงาน JobScheduler ที่ใช้ setRequiresDeviceIdle() และ setRequiresCharging()

การใช้งานตามระบบปฏิบัติการ

ระบบปฏิบัติการใช้รายละเอียดแผนข้อมูลที่ได้รับจาก SubscriptionPlan API ในลักษณะต่อไปนี้:

  • รายละเอียดแผนจะแสดงผ่านแอปการตั้งค่าเพื่อแสดงการใช้ข้อมูลที่ถูกต้องแก่ผู้ใช้ และเพื่อให้ ลิงก์ในรายละเอียดโดยตรงไปยังแอปของผู้ให้บริการ เพื่อโอกาสในการอัปเกรด/ขายต่อยอด
  • คำเตือนการใช้ข้อมูลและขีดจำกัดการแจ้งเตือนจะถูกกำหนดค่าโดยอัตโนมัติตามรายละเอียดแผน คำเตือนตั้งไว้ที่ 90% ของขีดจำกัด
  • หากผู้ให้บริการระบุว่าเครือข่าย "แออัด" เป็นการชั่วคราว ระบบปฏิบัติการจะชะลองาน JobScheduler ที่สามารถเลื่อนเวลาได้ ซึ่งจะช่วยลดภาระในเครือข่ายผู้ให้บริการ
  • หากผู้ให้บริการระบุว่าเครือข่ายเป็นแบบ "ไม่มีการตรวจวัด" ชั่วคราว ระบบปฏิบัติการสามารถรายงานการเชื่อมต่อเซลลูลาร์เป็น "ไม่มีการตรวจวัด" จนกว่าผู้ให้บริการจะล้างการแทนที่ หรือจนกว่าจะถึงค่าหมดเวลา (หากระบุ)
  • ด้วยการเปรียบเทียบการใช้ข้อมูลปัจจุบันของผู้ใช้กับขีดจำกัดข้อมูลโดยรวม ระบบปฏิบัติการจะประมาณการใช้ข้อมูลปกติของผู้ใช้เมื่อสิ้นสุดรอบการเรียกเก็บเงิน และจัดสรร 10% ของข้อมูลที่เกินดุลอย่างระมัดระวังเพื่อปรับปรุงประสบการณ์ผู้ใช้ เช่น โดยการอนุญาตให้แอปใช้งาน ข้อมูลหลายเส้นทาง

การปรับแต่งและการตรวจสอบ

แอปการตั้งค่า Android จะแสดงรายละเอียดแผนข้อมูลที่กำหนดค่าโดยผู้ให้บริการทั้งหมด เพื่อให้มั่นใจว่าผู้ใช้จะเห็นสถานะความสัมพันธ์ของผู้ให้บริการที่แม่นยำที่สุด และเสนอเส้นทางให้ผู้ใช้ไปยังแอปของผู้ให้บริการเพื่ออัปเกรดแผนของตน ขอแนะนำให้ผู้ผลิตอุปกรณ์ที่เลือกปรับแต่งแอปการตั้งค่าเพื่อแสดงรายละเอียดเหล่านี้ต่อไป

SubscriptionManager API ที่อธิบายไว้ข้างต้นได้รับการทดสอบโดย android.telephony.cts.SubscriptionManagerTest ซึ่งช่วยให้มั่นใจได้ว่าแอปของผู้ให้บริการจะกำหนดค่ารายละเอียดแผนข้อมูลได้ และการเปลี่ยนแปลงดังกล่าวจะเผยแพร่ภายในระบบปฏิบัติการ