2016-08-22 28 views
17

Niektóre urządzenia Samsung mają tryb oszczędzania energii, który wyłącza Wi-Fi, zmienia skalę szarości ekranu i ogranicza użycie do kilku podstawowych aplikacji.Jak ustawić aplikację na Androida w trybie oszczędzania energii

To jednak pozwala na dodanie niektórych aplikacji, które można następnie wykorzystać. Te aplikacje to Facebook i WhatsApp. Jak mogę wyświetlić moją aplikację na tej liście? Jakie zmiany muszę wprowadzić w aplikacji, aby pojawiły się na tej liście? A może ta lista jest oparta na białej liście obsługiwanej przez Samsunga?

+0

To może Ci pomóc http://forum.xda-developers.com/showthread.php?t=2750393 – teivaz

+5

Zabawne jest to, że Facebook znajduje się na liście Ultra Power Saving Mode :) –

+1

Jeśli twoja aplikacja ma dużo praca w tle, wbudowane aplikacje baterii Samsung automatycznie wprowadzą tę funkcję. Tak więc, np. Jeśli aplikacja zbiera lokalizację w usłudze, lub używa harmonogramów zadań do ustawienia pracy w przyszłości, Twoje szanse na poprawę będą widoczne na tej liście. Chociaż nie jestem pewien, dlaczego chciałbyś tam być. – Dus

Odpowiedz

4

Może to być możliwe za pomocą zezwolenia REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. To uprawnienie nie wymaga wyraźnego pozwolenia użytkownika. Tak będzie przyznane. Chociaż nie uniemożliwi to użytkownikowi ręcznego zatrzymania aplikacji.

Od the docs:

Jest to normalne pozwolenie: aplikacja, zwracając się do niej zawsze będzie przyznane uprawnienie, bez użytkownika, która chciałaby zatwierdzić lub zobaczyć.

ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS spowoduje umieszczenie aplikacji na białej liście urządzenia.

isIgnoringBatteryOptimizations poinformuje Cię, czy aplikacja znajduje się na białej liście.

niektóre notatki z the docs:

Uwaga: większość aplikacji nie powinien korzystać z tego; istnieje wiele urządzeń dostarczonych przez platformę dla aplikacji do prawidłowego działania w różnych trybach oszczędzania energii. Dotyczy to tylko nietypowych aplikacji, które wymagają dogłębnej kontroli własnego wykonania, przy potencjalnym koszcie życia baterii użytkownika. Należy zauważyć, że aplikacje te w znacznym stopniu narażają użytkownika na wysokie zużycie energii w jego urządzeniu .

Dane wejściowe: Identyfikator URI danych celu musi określać nazwę pakietu aplikacji , która ma być wyświetlana, ze schematem "pakiet". To jest "package: com.my.app".

To nie jest coś, co polecałbym do nadużywania. Jest dostępna lista Acceptable Use Cases for Whitelisting.

Ogólnie, aplikacja nie powinna znajdować się na białej liście, chyba Doze lub App czuwania złamać Podstawową funkcją aplikacji czy istnieje techniczna powód, aplikacja nie można używać FCM wiadomości o wysokim priorytecie.

Dzięki adsamcik za ten najnowszy link.

+0

Wyłączenie optymalizacji baterii w urządzeniu wymaga działania użytkownika. Muszą albo potwierdzić okno dialogowe, jeśli korzystasz z ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, albo wyłączyć je samodzielnie. Ponadto "zasady Google Play zabraniają aplikacjom żądania bezpośredniego zwolnienia z funkcji zarządzania energią w systemie Android 6.0 lub nowszym (stan wstrzymania i gotowości aplikacji), o ile nie ma to negatywnego wpływu na podstawową funkcję aplikacji." https://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases – adsamcik

+0

@adsamcik dobry link, który tam podałeś. Dodałem cytat z informacją, że robi to po cichu i tak, są ograniczenia. Dzięki za informację zwrotną - potrzebował poprawy –

+0

Musiałem to zaimplementować ostatnio, więc wiem, jak to działa z pierwszej ręki. Otrzymujesz pozwolenie, ale to uprawnienie zezwala tylko na wysłanie intencji "ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS". Ta intencja pokaże użytkownikowi okno dialogowe, w którym zapyta, czy chce wyłączyć optymalizację baterii, czy też nie. Znalazłem przykład tego okna dialogowego (tekst różni się od wersji do wersji) https://commonsware.com/blog/images/ignore-batt-opt-dialog.png – adsamcik