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สิทธิ์ นี่คือลายเซ็นหรือ
สิทธิ์ที่มีสิทธิ์ ซึ่งหมายความว่าแอปต้องอยู่ในไดเรกทอรี priv-app
ในอิมเมจระบบ และคุณต้องให้สิทธิ์นี้อย่างชัดเจน
สำหรับแอปที่มีสิทธิ์พิเศษ คุณต้องให้สิทธิ์ในไฟล์ XML ของการกำหนดค่าระบบ
ในไดเรกทอรี /etc/permissions/ ในพาร์ติชันเดียวกันกับแอป เช่น
หากต้องการให้สิทธิ์ android.permission.POWER_SAVER แก่แอปที่มี
ชื่อแพ็กเกจ com.google.android.apps.turbo ให้ทำดังนี้
<!-- File located at /etc/permissions/privapp-permissions-DEVICE_NAME.xml -->
<permissions>
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
</permissions>
หากคุณไม่ได้ให้สิทธิ์นี้แก่แอปในอิมเมจระบบ แอปจะขอรับสิทธิ์หรือเรียกใช้ API ไม่สำเร็จ ระบบจะไม่ ให้ความคิดเห็นนอกเหนือจากข้อผิดพลาดเกี่ยวกับสิทธิ์มาตรฐาน ดังนั้นคุณจึงต้องยืนยัน ว่าแอปเรียกใช้ API ได้และสังเกตผลกระทบของ API
การติดตั้ง
หากต้องการให้อิงตามกิจวัตรทำงานได้อย่างถูกต้อง คุณต้องติดตั้งแอปไว้ล่วงหน้าใน
อิมเมจระบบที่มีสิทธิ์ที่จำเป็น ให้สิทธิ์ android.permission.POWER_SAVER แก่แอปเพียงแอปเดียวและอนุญาตให้แอปนั้นควบคุม API ของอิงตาม
กิจวัตร ระบบไม่รองรับและไม่ได้ระบุลักษณะการทำงานของฟีเจอร์หากมีแอปมากกว่า 1 รายการพยายามใช้สิทธิ์และ 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 ของกำหนดเวลาโหมดประหยัดแบตเตอรี่ โหมดประหยัดแบตเตอรี่จะไม่เปิดโดยอัตโนมัติ
- การลบล้างด้วยตนเอง: หากแอปเปิดโหมดประหยัดแบตเตอรี่และคุณลบล้างโหมดประหยัดแบตเตอรี่ด้วยตนเองเพื่อปิด (โดยใช้การตั้งค่าด่วน การตั้งค่า หรือวิธีอื่นๆ) โหมดประหยัดแบตเตอรี่จะปิดอยู่จนกว่าคุณจะเปิดอีกครั้งด้วยตนเองหรือเสียบปลั๊กอุปกรณ์