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