Jak odświeżać widget co każdy 1% baterii?

0

Chcę zrobić najbanalniejszy widget baterii na androida w javie, w eclipse. Na razie wyszło mi tylko tyle, że po włączeniu widgetu, stan baterii pokazuje się, jednak nie odświeża się. Można przez telnet kazać emulatorowi androida zmienić stan baterii (power capacity <tu liczba>), robię to jednak widget nie aktualizuje tej zmiany. Jedynie po 30 minutach refreshuje się, bo to minimalny czas refreshu w pliku xml, a ten refresh dodatkowo wybudza urządzenie.

Szukam sposobów by co każdą zmianę stanu baterii (czyli co 1%), widget wykonywał kod na ustawienie TextViewowi tej wartości (najlepiej by ekran telefonu będąc przygaszonym, pozostawał przygaszony, tak jak widgety z zegarem).

Proszę więc o wymienienie sposobów jak to zrobić. Może być krótko, później sobie example w google poszukam dzięki temu, ale muszę mniej więcej wiedzieć jaki zestaw funkcji lub czego jest mi potrzebny do tego.
Rzecz jasna, z góry dziękuję.

ps. z netu jeden example pobrałem, niby miał działać, a nie odświeża stanu baterii po jej zmianie, ciekawe czy autor takiego example w ogóle sprawdzał kod w praktyce.

0

@fsadsafdfdsa
dziękuję, jednak coś jest nie tak, bo pobrałem ten przykład ze strony, widać, że kod już bardziej profesjonalnie zrobiony jest i nie odświeża mi baterii, używam przez telnet komendy np. power capacity 11 i bateria na widgecie jest bez zmian, ma ciągle 50% (choć na wbudowanej w system androida baterii, tej malutkiej obok czasu, widać zmiany).

O co więc chodzi? To już drugi example z netu pobrany, odpalony, który nie działa więc może wina z emulatorem jest? Trzeba go jakoś specjalnie ustawić, czy co?

dobra, jednak działa, autor apki po prostu ustawił odświeżanie co 30 sekund, tak to jest jak tylko odpala się gotowca

0

Używaj Genymotion. Można tam między innymi ustawiać poziom baterii.

0

http://developer.android.com/training/monitoring-device-state/battery-monitoring.html
http://developer.android.com/reference/android/content/Intent.html#ACTION_BATTERY_CHANGED

Czyli w activity rejestrujesz broadcast reciver na ACTION_BATTERY_CHANGED i z intenta odczytujesz EXTRA_LEVEL oraz EXTRA_SCALE i na tej podstawie liczysz procent naładowania i wysyłasz te informację do widget-a.

1 użytkowników online, w tym zalogowanych: 0, gości: 1