โหมดประหยัดแบตเตอรี่ตามกิจวัตร

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

การกำหนดค่าอุปกรณ์

ข้อกำหนดของผู้ให้บริการ

หากต้องการแจ้ง UI การตั้งค่าว่าอุปกรณ์ได้รับการกำหนดค่าอย่างถูกต้อง ให้ใช้ การวางซ้อนการกำหนดค่าเพื่อลบล้างค่า config_batterySaverScheduleProvider ด้วย ชื่อแพ็กเกจของแอป

เช่น หากต้องการให้แพ็กเกจแอป com.google.android.apps.turbo ควบคุมการตั้งค่าตามกิจวัตร คุณจะต้องตั้งค่าการกำหนดค่านี้

<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>

ตอนนี้โทรศัพท์ควรแสดงตัวเลือกตามกิจวัตร หากต้องการยืนยัน ให้สร้างอิมเมจ แฟลชลงในโทรศัพท์ แล้วไปที่การตั้งค่า > แบตเตอรี่ > โหมดประหยัด แบตเตอรี่ > กำหนดเวลาโหมดประหยัดแบตเตอรี่ ตัวเลือกอิงตามกิจวัตรควรปรากฏขึ้น

เกณฑ์ปิดโดยค่าเริ่มต้น

ฟิลด์ config_dynamicPowerSavingsDefaultDisableThreshold ใหม่จะระบุ ระดับแบตเตอรี่ที่ระบบจะปิดโหมดประหยัดแบตเตอรี่ หากเปิดไว้ โดยตัวกำหนดเวลาตามกิจวัตร ค่าเริ่มต้นของระบบคือ 80% แต่คุณเปลี่ยนได้

การกำหนดค่าแอป

สิทธิ์

API ที่จำเป็นสำหรับแอปในการเปิดโหมดประหยัดแบตเตอรี่จากแอปได้รับการปกป้อง โดยสิทธิ์ android.permission.POWER_SAVER นี่คือ ลายเซ็น/สิทธิ์พิเศษ ดังนั้นให้สิทธิ์นี้แก่แอปที่คุณต้องการให้ทริกเกอร์ โหมดประหยัดแบตเตอรี่ได้ใน privapp-whitelist

ตัวอย่างการให้สิทธิ์ privapp แก่แอป

<privapp-permissions package="com.google.android.apps.turbo">
   <permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>

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

การติดตั้ง

หากต้องการให้อิงตามกิจวัตรทำงานได้อย่างถูกต้อง คุณต้องติดตั้งแอปไว้ล่วงหน้าใน อิมเมจระบบที่มีสิทธิ์ที่จำเป็น ให้POWER_SAVER สิทธิ์แก่แอปเพียงแอปเดียวและอนุญาตให้แอปควบคุม based on routine API ระบบไม่รองรับและไม่ได้ระบุลักษณะการทำงานของฟีเจอร์เมื่อมีแอปมากกว่า 1 รายการพยายามใช้สิทธิ์และ API

ทริกเกอร์โหมดประหยัดแบตเตอรี่

API

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

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

หากเปิดใช้ตัวเลือกกำหนดเวลาโหมดประหยัดแบตเตอรี่ตามกิจวัตรและแอป เรียกใช้เมธอดนี้โดยมีค่า true สำหรับ powerSaveHint ระบบจะเปิดโหมดประหยัดแบตเตอรี่ ระบุ disableThreshold เพื่อให้ระบบทราบว่าควรปิดโหมดประหยัดแบตเตอรี่เมื่อแบตเตอรี่เหลือเท่าใด หากแอปสื่อสารกับระบบไม่ได้

API นี้ขึ้นอยู่กับการลบล้างของผู้ใช้และการเลื่อนโหมดประหยัดแบตเตอรี่ในลักษณะเดียวกัน กับโหมดประหยัดแบตเตอรี่อัตโนมัติแบบอิงตามเปอร์เซ็นต์ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับ API

หากต้องการยืนยันว่าเรียกใช้ API สำเร็จ ให้ค้นหาการตั้งค่าส่วนกลางเพื่อยืนยันว่า การตั้งค่าสำรองมีการเปลี่ยนแปลงค่า ตามการเรียก API

ตัวอย่างเช่น หากผู้ใช้เลือกโหมดโหมดประหยัดแบตเตอรี่ตามปกติและแอป เรียกใช้ setDynamicPowerSaveHint(true, 10) การตั้งค่าส่วนกลางควรมีค่าต่อไปนี้

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1

หากคุณเรียกใช้ setDynamicPowerSaveHint(false, 25) ค่าควรเป็นดังนี้

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0

คุณตรวจสอบค่าเหล่านี้ได้โดยใช้คำสั่ง adb นี้

adb shell settings get global <setting-name>

การยืนยัน

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

  • ผู้ใช้เลือกตามเปอร์เซ็นต์ใน UI ของกำหนดเวลาโหมดประหยัดแบตเตอรี่ และเลือก 15% โหมดประหยัดแบตเตอรี่ควรเปิดโดยอัตโนมัติเมื่อแบตเตอรี่เหลือ 15% เท่านั้น
  • ผู้ใช้เลือกตามกิจวัตรใน UI การตั้งเวลาโหมดประหยัดแบตเตอรี่ เมื่อ แอปเรียกใช้ API ด้วย true ระบบจะเปิดโหมดประหยัดแบตเตอรี่ นอกจากนี้ โหมดประหยัดแบตเตอรี่จะปิดโดยอัตโนมัติหากมีการชาร์จอุปกรณ์จนถึง ระดับเกณฑ์ที่ระบุและถอดปลั๊ก
  • ผู้ใช้เลือกไม่มีใน UI ของกำหนดเวลาโหมดประหยัดแบตเตอรี่ โหมดประหยัดแบตเตอรี่ ไม่ควรเปิดโดยอัตโนมัติ
  • หากแอปเปิดโหมดประหยัดแบตเตอรี่และผู้ใช้ลบล้างโหมดประหยัดแบตเตอรี่ด้วยตนเองให้ปิดอีกครั้ง (โดยใช้การตั้งค่าด่วน การตั้งค่า ฯลฯ) โหมดประหยัดแบตเตอรี่ควรปิดต่อไปจนกว่าผู้ใช้จะเปิดอีกครั้งด้วยตนเองหรือเสียบปลั๊กอุปกรณ์