Tôi hiện đang triển khai tính năng mà người dùng được yêu cầu bỏ qua tối ưu hóa pin cho ứng dụng. Lý do để làm như vậy, là chức năng chính của ứng dụng không may bị ảnh hưởng mạnh bởi chế độ tiết kiệm điện.isPowerSaveMode() luôn trả về false cho các thiết bị Huawei
Để đạt được mục tiêu của mình, tôi nhắc người dùng bằng cách tạo Intent
và đặt Action
thành ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
.
Mặc dù trước khi kích hoạt Intent
, tôi đều kiểm tra isPowerSaveMode()
và isIgnoringBatteryOptimizations()
để đảm bảo rằng tôi không nhắc người dùng khi chế độ tiết kiệm điện không được bật; đó là một yêu cầu cho tính năng này. Con đường tôi làm như vậy là bởi:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isPowerSaveMode = pm.isPowerSaveMode(); // always returns false for Huawei devices
này hoạt động tốt đối với hầu hết các thiết bị, nhưng đối với các thiết bị của Huawei, isPowerSaveMode()
luôn trả false
. Do đó, vì các điều kiện tiên quyết không thành công, lời nhắc sẽ không bao giờ được hiển thị.
Có ai khác có thể gặp sự cố này không? Nếu vậy, bạn đã làm gì để giải quyết nó?
Lưu ý, cùng một vấn đề cũng xuất hiện trong SDK Xamarin.Android
.
Có một giải pháp thay thế, đã được mô tả [tại đây] (https://stackoverflow.com/questions/15133392/find-out-if-power-saving-mode-enabled-android-sdk) – Ch4t4r
@ Ch4t4r Cảm ơn cho liên kết. Mặc dù nó không giải quyết được vấn đề tôi gặp phải. – Demitrian
Bạn có chắc chắn nó không liên quan đến phiên bản Android được cài đặt trên điện thoại không? Nếu có, bạn có thể thử đoạn mã này không? PowerManager powerManager = (PowerManager) getActivity(). GetSystemService (Context.POWER_SERVICE); if (android.os.Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP && powerManager.isPowerSaveMode()) { } – hugoterelle