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 ของกำหนดเวลาโหมดประหยัดแบตเตอรี่ โหมดประหยัดแบตเตอรี่ ไม่ควรเปิดโดยอัตโนมัติ
- หากแอปเปิดโหมดประหยัดแบตเตอรี่และผู้ใช้ลบล้างโหมดประหยัดแบตเตอรี่ด้วยตนเองให้ปิดอีกครั้ง (โดยใช้การตั้งค่าด่วน การตั้งค่า ฯลฯ) โหมดประหยัดแบตเตอรี่ควรปิดต่อไปจนกว่าผู้ใช้จะเปิดอีกครั้งด้วยตนเองหรือเสียบปลั๊กอุปกรณ์