2011-12-16 25 views
8

Zrobiłem aplikację, która przekształca telefon w kamerę internetową i używa połączenia telefonicznego do wysyłania obrazu do internetu.Blokada WiFi nie działa, jak zapobiec oszczędzaniu energii wifi?

Używam aktywności reklamowej, która ustawia Menedżera alarmów do uruchamiania Usługi co 5 lub 15 minut. Aby wykonać całą realizację Usługi, wykonuję blokadę wybudzania, ale jest ona opuszczana po zakończeniu usługi.

Wszystko to działa idealnie z połączeniem mobilnym, ale nie działa tak samo w przypadku Wi-Fi.

Ustawiłem w opcji Wi-Fi politykę "NIGDY" dla snu WiFi. Ale po pewnym czasie (nie zawsze tak samo) telefon wydaje się działać w trybie oszczędzania energii: ikona wifi jest jeszcze na pasku stanu, ale telefon nie może się połączyć. Nawet jeśli używam przeglądarki ... muszę odłączyć i ręcznie połączyć się ponownie. Wiadomość w kodzie logowania: notify conn break (IOEx), close connection Nawet z podłączoną słuchawką!

dlaczego? (1)

Eksperyment z inną aplikacją utworzoną przez działanie, które uruchamia usługę zawsze działającą z blokadą wybudzania. Dodałem więc blokadę Wi-Fi, aby mieć pewność co do łączności, ale ta metoda czasami działa, a niektóre nie. Zawsze ten sam notify conn break (IOEx), close connection dlaczego? (2)

Ostatni eksperyment pochodzi z pierwszej aplikacji (menadżer alarmu) i dla pewności, że Wi-Fi nie przechodzi w tryb uśpienia/oszczędzania energii (wiedźma?) Przekręciłem telefon w samolocie tryb po wykonaniu kodu i wyłączam go (połączenie włączone) po rozpoczęciu cyklu. To działa ok przez dwa dni, ale po tylko czasami jest to praca (każda godzina lub dwie zamiast co 5 minut, lub czasami nie działa przez cały dzień, a następnie ponownie uruchomić bez żadnego powodu ...). Dlaczego w trybie samolotowym nie można ponownie nawiązać połączenia Wi-Fi? (i kilka innych razy)? (3)

Telefon to Samsung Galaxy ACE z originalware 2.2 i jest ZAWSZE podłączony do ładowania.

+0

możliwy duplikat: http://stackoverflow.com/questions/5147203/wifi-sleeps-even-withlock –

Odpowiedz

5

Aby urządzenie nie wchodziło w tryb oszczędzania energii, spróbuj użyć blokady Wi-Fi typu WIFI_MODE_FULL_HIGH_PERF To nie jest dostępne publicznie do wersji 3.1 Androida.
ale nadal można go używać poprzez kodowanie, wartość WIFI_MODE_FULL_HIGH_PERF wynosi 3 (int).
Próbowałem go na urządzeniu pre-3.1. To działa jak urok! powodzenia!