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 OEM (Nhà sản xuất thiết bị gốc) chọn cung cấp tín hiệu cho hệ thống để lập lịch trình 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
config lớp phủ để 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>
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, 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ột
mức pin mà hệ thống tắt trình tiết kiệm pin (nếu đã bật)
bằng trình lập lịch biểu dựa trên quy trình. Giá trị mặc định của hệ thống là 80%, nhưng bạn có thể
thì thay đổi.
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ệ thống hình ảnh tương ứng, ứng dụng không thể có được quyền này hoặc gọi API đúng cách. Chiến lược phát hành đĩa đơn hệ thống không cung cấp bất kỳ phản hồi nào ngoài các lỗi cấp quyền thông thường, vì vậy xác minh rằng bạn có thể gọi các API và quan sát tác động của chúng.
Cài đặt
Để dựa trên quy trình hoạt động bình thường, bạn phải cài đặt sẵn ứng dụng này trên
hình ảnh hệ thống với 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 tính năng khi nhiều ứng dụng cố gắng sử dụng quyền và 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ử 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
đ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 đó, nhà sản xuất thiết bị gốc (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 được kỳ vọng. Đặc biệt, hãy xác minh rằng thiết bị có thể thực hiện những 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 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 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 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ị.