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

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ị.