Trình tiết kiệm pin định kỳ

Android 10 giới thiệu tùy chọn lịch trình tiết kiệm pin được gọi là dựa trên thói quen . Tùy chọn này cho phép ứng dụng đượ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. Tùy chọn này yêu cầu cấu hình và là tùy chọn để triển khai.

Cấu hình thiết bị

Đặc điểm 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 của bạn để ghi đè giá trị config_batterySaverScheduleProvider bằng tên gói ứng dụng của bạn.

Ví dụ: nếu bạn muốn gói ứng dụng com.google.android.apps.turbo kiểm soát 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ị tùy chọn dựa trên thói quen . Để xác minh, hãy tạo hình ảnh của bạn, flash hình ảnh đó vào điện thoại và điều hướng đến Cài đặt > Pin > Tiết kiệm pin > Lịch trình tiết kiệm pin . Tùy chọn dựa trên thói quen 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 sẽ tắt trình tiết kiệm pin nếu tính năng này được bật theo bộ lập lịch định kỳ . Mặc định của hệ thống là 80% nhưng bạn có thể thay đổi nó.

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ởi quyền android.permission.POWER_SAVER . Đây là quyền chữ ký/đặc quyền, vì vậy hãy cấp cho ứng dụng bạn muốn để có thể kích hoạt trình tiết kiệm pin quyền này trong privapp-whitelist của bạn.

Một ví dụ về việc 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 của ứng dụng trên hình ảnh hệ thống thì ứng dụng sẽ không thể có được quyền hoặc gọi API đúng cách. 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 phép 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 tác động của chúng.

Cài đặt

Để hoạt động bình thường theo quy trình, bạn phải cài đặt sẵn ứng dụng trên hình ảnh hệ thống với sự cho phép cần thiết. Chỉ cấp cho một ứng dụng quyền POWER_SAVER và cho phép ứng dụng đó kiểm soát các API thông thường dựa trên . Hoạt động của tính năng khi có nhiều ứng dụng cố gắng sử dụng quyền và 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ử thiết lập thành công cho đến nay, ứ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 tùy chọn lịch trình tiết kiệm pin dựa trên thông thường được bật 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, hệ thống vẫn biết phần trăm pin nào là an toàn để tắt trình tiết kiệm pin.

API này có thể được người dùng ghi đè và tạm ẩn trình tiết kiệm pin giống như trình tiết kiệm pin tự động dựa trên tỷ lệ 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 truy vấn cài đặt chung để xác minh rằng cài đặt sao lưu đã thay đổi giá trị theo các 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ì 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 nào để 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 tra sự tích hợp của họ để đảm bảo rằng hành vi đáp ứng mong đợi. Đặc biệt, hãy xác minh rằng thiết bị có thể thực hiện các tác 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 CHỈ sẽ tự động bật khi đạt 15% pin.
  • Người dùng chọn dựa trên thói quen trong giao diện người dùng lịch trình 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 không chọn tùy chọn nào trong giao diện người dùng lịch trình 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 theo cách thủ công để tắt lại (sử dụng Cài đặt nhanh, Cài đặt, v.v.), ứng dụng sẽ 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ị vào.