Android 10 ra mắt tính năng 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. Bạn cần phải định cấu hình và không bắt buộc phải triển khai tuỳ chọn này.
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 bạn 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 sẽ đặt giá trị cấu hình này:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
Lúc này, đ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, truyền nhanh hình ảnh đó vào điện thoại và điều hướng đến Cài đặt > Pin > Pin Tiết kiệm > Lịch biểu của Trình tiết kiệm pin. Tuỳ 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à hệ thống tắt trình tiết kiệm pin, nếu trình tiết kiệm pin được bật bởi trình lập lịch biểu dựa trên quy trình. Mức mặc định của hệ thống là 80%, nhưng bạn có thể thay đổi mức 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 trong ứng dụng được bảo vệ
bởi quyền android.permission.POWER_SAVER
. Đây là một
quyền chữ ký/đặc quyền, vì vậy, hãy cấp cho ứng dụng mà bạn muốn ứng dụng đó có thể kích hoạt
trình tiết kiệm pin cho quyền này trong privapp-whitelist
của bạn.
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 hình ảnh hệ thống, thì ứng dụng sẽ không thể thu được quyền hoặc gọi API đúng cách. Hệ thống không đưa ra phản hồi nào ngoài các lỗi cấp 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 quả của các API đó.
Cài đặt
Để chế độ dựa trên quy trình hoạt động đúng cách, bạn phải cài đặt trước ứng dụng trên hình ảnh hệ thống bằng quyền cần thiết. Chỉ cấp POWER_SAVER
cho một ứng dụng
và cho phép ứng dụng này kiểm soát các API dựa trên quy trình. Hành vi của
khi có nhiều ứng dụng cố gắng sử dụng quyền này và API
không được hỗ trợ và không xác định.
Kích hoạt trình tiết kiệm pin
API
Giả sử quá trình 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 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
hệ thống vẫn biết bao nhiêu phần trăm pin là an toàn để bật
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ự làm trình tiết kiệm pin tự động dựa trên phần trăm. Xem Tài liệu API để biết thêm thông tin.
Để xác minh các API được gọi thành công, hãy cài đặt truy vấn 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ế độ trình tiết kiệm pin định kỳ và ứng dụng được
đ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 hoạt động nào mà OEM sẽ sử dụng để quyết định thời điểm kích hoạt trình tiết kiệm pin thông thường . Do đó, OEM chịu trách nhiệm kiểm thử quá trình tích hợp để đảm bảo rằng hành vi đáp ứng 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 đạt 15% pin.
- Người dùng chọn dựa trên quy trình trong giao diện người dùng lịch trình của trình tiết kiệm pin. Thời gian
ứng dụng sẽ 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 bao giờ được 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ị.