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

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