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