Trình tiết kiệm pin quy trình

Android 10 giới thiệu tuỳ chọn lên lịch trình tiết kiệm pin có tên là dựa trên quy trình. Tuỳ chọn này cho phép một ứng dụng do nhà sản xuất thiết bị gốc (OEM) chọn cung cấp tín hiệu cho hệ thống để lên lịch tiết kiệm pin thông minh hơn. Lựa chọn này yêu cầu phải định cấu hình và không bắt buộc khi triển khai.

Cấu hình thiết bị

Thông số kỹ thuật của nhà cung cấp

Để thông báo cho giao diện người dùng Cài đặt rằng thiết bị đã được định cấu hình chính xác, hãy sử dụng lớp phủ cấu hình để ghi đè giá trị config_batterySaverScheduleProvider bằng tên gói của ứng dụng.

Ví dụ: nếu muốn gói ứng dụng com.google.android.apps.turbo kiểm soát chế độ cài đặt dựa trên quy trình, thì bạn nên đặt giá trị cấu hình sau:

<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>

Bây giờ, điện thoại sẽ hiển thị tuỳ chọn dựa trên quy trình. Để xác minh, hãy tạo hình ảnh, cài đặt ROM cho điện thoại rồi chuyển đến phần Cài đặt > Pin > Trình tiết kiệm pin > Lịch trình của trình tiết kiệm pin. Lựa chọn dựa trên quy trình sẽ xuất hiện.

Ngưỡng tắt mặc định

Trường config_dynamicPowerSavingsDefaultDisableThreshold mới chỉ định mức pin mà tại đó hệ thống tắt trình tiết kiệm pin, nếu trình lập lịch biểu dựa trên quy trình đã bật. Giá trị mặc định của hệ thống là 80%, nhưng bạn có thể thay đổi giá trị này.

Cấu hình ứng dụng

Quyền

Các API cần thiết để ứng dụng bật trình tiết kiệm pin từ ứng dụng được bảo vệ bằng quyền android.permission.POWER_SAVER. Đây là quyền chữ ký/quyền đặc quyền, vì vậy, hãy cấp cho ứng dụng mà bạn muốn có thể kích hoạt trình tiết kiệm pin quyền này trong privapp-whitelist.

Ví dụ về cách cấp quyền privapp cho một ứng dụng:

<privapp-permissions package="com.google.android.apps.turbo">
   <permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>

Nếu bạn không cấp trước quyền này cho phiên bản ứng dụng trên ảnh hệ thống, thì ứng dụng sẽ không thể có được quyền này hoặc gọi API đúng cách. Hệ thống không cung cấp ý kiến phản hồi nào ngoài các lỗi về quyền thông thường, vì vậy, hãy xác minh rằng bạn có thể gọi các API và quan sát hiệu ứng của các API đó.

Cài đặt

Để dựa trên quy trình hoạt động đúng cách, bạn phải cài đặt sẵn ứng dụng trên ảnh hệ thống bằng quyền cần thiết. Chỉ cấp quyền POWER_SAVER cho một ứng dụng và cho phép ứng dụng đó kiểm soát các API dựa trên quy trình. Hành vi của tính năng khi có nhiều ứng dụng cố gắng sử dụng quyền này, đồng thời các API không được hỗ trợ và không được chỉ định.

Kích hoạt trình tiết kiệm pin

API

Giả sử bạn đã thiết lập thành công cho đến thời điểm này, ứng dụng OEM được chỉ định trong cấu hình sẽ có thể gọi thành công phương thức được liên kết trong PowerManager để kích hoạt trình tiết kiệm pin:

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

Nếu bạn bật tuỳ chọn lịch trình tiết kiệm pin dựa trên quy trình và ứng dụng gọi phương thức này với giá trị true cho powerSaveHint, thì trình tiết kiệm pin sẽ bật. Chỉ định disableThreshold để nếu ứng dụng không thể giao tiếp với hệ thống, thì hệ thống vẫn biết mức pin an toàn để tắt trình tiết kiệm pin.

API này tuỳ thuộc vào chế độ ghi đè của người dùng và trình tiết kiệm pin sẽ tạm hoãn theo cách tương tự như trình tiết kiệm pin tự động dựa trên tỷ lệ phần trăm. Hãy xem tài liệu về API để biết thêm thông tin.

Để xác minh rằng các API được gọi thành công, hãy truy vấn chế độ cài đặt chung để xác minh rằng giá trị của chế độ cài đặt sao lưu đã thay đổi theo lệnh gọi API.

Ví dụ: nếu người dùng đã chọn chế độ tiết kiệm pin thông thường và ứng dụng đang gọi setDynamicPowerSaveHint(true, 10), thì chế độ cài đặt chung sẽ có các giá trị sau:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1

Sau đó, nếu bạn gọi setDynamicPowerSaveHint(false, 25), các giá trị sẽ là:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0

Bạn có thể kiểm tra các giá trị này bằng lệnh adb sau:

adb shell settings get global <setting-name>

Xác minh

Không có cách tự động để xác minh tính năng này vì không có cách nào để biết OEM sẽ sử dụng hành vi nào để quyết định thời điểm kích hoạt chế độ tiết kiệm pin thông thường. Do đó, OEM chịu trách nhiệm kiểm thử hoạt động tích hợp để đảm bảo rằng hành vi đó đáp ứng được kỳ vọng. Cụ thể, hãy xác minh rằng thiết bị có thể thực hiện các nhiệm vụ sau:

  • Người dùng chọn dựa trên tỷ lệ phần trăm trong giao diện người dùng lịch trình của trình tiết kiệm pin và chọn 15%. Trình tiết kiệm pin sẽ CHỈ tự động bật khi pin đạt 15%.
  • Người dùng chọn dựa trên quy trình trong giao diện người dùng lịch biểu tiết kiệm pin. Khi ứng dụng gọi API bằng true, trình tiết kiệm pin sẽ bật. Ngoài ra, trình tiết kiệm pin sẽ tự động tắt nếu thiết bị được sạc đến mức ngưỡng được chỉ định và rút phích cắm.
  • Người dùng chọn không trong giao diện người dùng lên lịch tiết kiệm pin. Trình tiết kiệm pin KHÔNG ĐỪNG bật tự động.
  • Nếu ứng dụng bật trình tiết kiệm pin và người dùng ghi đè trình tiết kiệm pin để tắt lại theo cách thủ công (bằng cách sử dụng phần Cài đặt nhanh, Cài đặt, v.v.), thì trình tiết kiệm pin sẽ TIẾP TỤC TẮT cho đến khi người dùng bật lại theo cách thủ công hoặc cắm thiết bị.