2017-08-17 51 views
9

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()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.

+0

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

+0

@ 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

+0

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

Trả lời

1

Mỗi oem sửa đổi SDK cho phù hợp với nhu cầu của họ. Thiết bị Huawei không sử dụng chức năng tiết kiệm pin mặc định, thay vào đó, chúng sử dụng một cái gì đó có tên là "Ứng dụng được bảo vệ". Ứng dụng được bảo vệ là tập hợp các ứng dụng được phép chạy ngay cả khi màn hình tắt. Vì vậy, đó là lý do nó luôn luôn trả về sai. Nó tốt hơn để ném một ý định để bảo vệ màn hình ứng dụng nhưng không có cách nào để biết nếu ứng dụng của bạn được thêm vào danh sách ứng dụng được bảo vệ. What is protected apps ?

0

Tôi đã gặp phải sự cố tương tự mới trong khi thiết bị cầm tay và thiết bị đeo được. Giải pháp duy nhất tôi tìm thấy là tắt chế độ trình tiết kiệm pin cho tất cả các ứng dụng. Tôi sẽ đề xuất phát hiện kết quả của các phương pháp của bạn sau khi tắt chế độ như vậy cho tất cả các ứng dụng. Lỗi này chỉ xuất hiện trên Huawei. Nhà cung cấp khủng khiếp.

Các vấn đề liên quan