Z jakiego powodu budzik nie działa, gdy telefon jest wyłączony?

13

Wiem, że alarm nie działa, gdy telefon jest wyłączony, ale moje pytanie brzmi: dlaczego to nie działa? Co myśleli programiści / inżynierowie?

Zawsze używałem moich telefonów komórkowych jako budzików, a nawet bardzo stare telefony komórkowe obsługują budziki, gdy są wyłączone.

RoflcoptrException
źródło
2
Mój stary gówniany Motorola V360 był w stanie to zrobić, myślę, że w Androidzie Alarm działa na systemie operacyjnym, a nie na niskim poziomie, jak te prostsze telefony.
mbwasi
Naprawdę masz na myśli wyłączenie, jak wyłączenie zasilania, a nie tylko brak połączenia z siecią komórkową?
Amanda
Nigdy nie wyłączam mojego. Korzystam z Taskera, aby wyłączyć powiadomienia na noc, a jeśli naprawdę nie chcę połączeń, korzystam z trybu samolotowego.
TomG

Odpowiedzi:

20

Gdy telefon jest wyłączony, nie ma zasilania. To jest naprawdę wyłączone . Niektóre telefony mają minimalistyczny tryb ładowania, który pokazuje tylko animację baterii, ale jeszcze nie widziałem urządzenia z Androidem, które uruchamia się w trybie tylko z zegarem.

System operacyjny Android zaprojektowano tak, aby zużywał minimalną moc, gdy nie jest używany. Jeśli masz problem z wyczerpywaniem się baterii przez noc, prawdopodobnie przyczyną jest aplikacja innej firmy.

Matthew Read
źródło
2
Czy naprawdę nie może zaoszczędzić energii potrzebnej do trzyletniego korzystania z zegarka cyfrowego na małej baterii guzikowej minus narzut ekranu LCD?
mattdm,
4
Jestem pewien, że tak, ale większość urządzeń z Androidem jest najwyraźniej zaprojektowana dla ludzi takich jak ja, którzy chcą, aby telefon był wyłączony po wyłączeniu.
Mateusz
Więc jeśli byłby w stanie to zrobić, powinno być możliwe napisanie niestandardowego budzika, który może to zrobić?
RoflcoptrException
6
@Roflcoptr: Nie, to nie jest problem z oprogramowaniem, więc nie można po prostu napisać oprogramowania. Potrzebujesz sprzętowego budzika, aby móc włączyć wyłączony telefon z Androidem.
Lie Ryan,
Kupiłem dok stacjonarny. Działa dobrze.
ale
5

Twój stary telefon komórkowy nie był tak naprawdę „wyłączony”, gdy go wyłączyłeś.

Keith Twombley
źródło
6
Niekoniecznie. Gdyby telefon miał osobny układ RTC, możesz wyłączyć część telefonu i mieć tylko zasilanie RTC. Gdyby zadziałał alarm RTC, mógłby obudzić główny mikrokontroler telefonu. Dziwi mnie, że urządzenia z Androidem nie mają tego rodzaju sprzętu.
Miky Dinescu,
1
Tak, koniecznie. Jeśli działał budzik, był włączony, a nie wyłączony.
Amanda
3

Po ustawieniu alarmu zamiast wyłączania telefonu włącz tryb samolotowy. W ten sposób system operacyjny jest zamknięty do stanu bezczynności z uruchomionym zegarem.

HTC może połączyć przytrzymanie przycisku zasilania z włączeniem trybu samolotowego i przejściem w tryb gotowości. Wtedy, gdy użytkownik ponownie przytrzyma przycisk zasilania, aby włączyć telefon, telefon faktycznie wykona ponowne uruchomienie. Funkcja włączania / wyłączania wygląda tak samo jak poprzednio.

złupić
źródło
1
Nie zgadzam się; istnieją aplikacje, które wykorzystują nietrywialną moc, na którą narzekalibyśmy, gdyby nie było łatwego sposobu na ich uratowanie. W ten sposób, gdy wyłączamy telefon, nie zużywa on prawie żadnej mocy; jedyną zużywaną mocą jest bateria.
Kevin M
Nie jestem pewien, czy rozumiem twój komentarz. Czy masz na myśli, że w trybie samolotowym działają aplikacje, które zużywają niebanalną ilość energii? Czy masz na myśli coś innego?
2

Zrobiłem „eksperyment” z telefonem (Samsung Nexus S, Android 2.3):

Ustawienia -> Data i czas -> Automatycznie -> WYŁ

Następnie ręcznie ustawiłem niewłaściwą wartość (czas rzeczywisty + 5 minut). Wyłączyłem telefon. Wył. Mam na myśli naprawdę wyłączony, nie czuwanie, stan, kiedy alarm nie działa. Po kilku minutach ponownie go włączyłem.

Wyświetlany czas był nadal nieprawidłową wartością, którą ustawiłem wcześniej, tj. Zaktualizowany bieżący czas rzeczywisty + 5 minut.

Oznacza to, że telefon powinien mieć wewnętrzny zegar, który działa, nawet gdy jest wyłączony. W rzeczywistości może go nie mieć, ale powinien przechowywać różnicę między bieżącym czasem uzyskanym z sieci a ustawionym czasem; wydaje się to jednak dość nierealne.

To sprawia, że ​​myślę, że telefony z Androidem mają wewnętrzny zegar z własną baterią, co powinno umożliwić uruchomienie telefonu w odpowiednim czasie.

Czy może brakować czegoś w samym systemie operacyjnym Android?

PS: Czy ktoś wie, czy możliwe jest wybudzenie telefonu o określonej godzinie? Jeśli tak, powinniśmy uruchomić go na pięć minut przed ustawieniem alarmu ...

Pietro
źródło
2
Ciekawy pomysł, ale zadziałałoby to tylko wtedy, gdy nie jest wymagany kod PIN lub jeśli gdzieś zaimplementujesz swój kod PIN. czy nie jest konieczne wprowadzenie kodu PIN, aby AlarmManager działał?
RoflcoptrException
Proszę nie używać swojej odpowiedzi do wprowadzania nowych pytań. To nie jest forum dyskusyjne. Jeśli nie odpowiadasz na oryginalne pytanie, utwórz własne.
ale
1
Posiadanie sprzętu RTC (zegara czasu rzeczywistego), który działa, gdy telefon jest wyłączony, nie oznacza, że ​​RTC może obudzić telefon po wyłączeniu zasilania. Aby RTC obudził telefon, musi być w stanie uruchomić procesor, w zasadzie mając taką samą maszynerię jak przycisk zasilania. Ponadto system operacyjny musi mieć mechanizm ustawiania czasu budzenia RTC, a następnie musiał przechowywać ten czas w sobie. Mechanizm alarmowanego RTC jest znacznie bardziej złożony niż zwykły RTC, który jest po prostu licznikiem binarnym. Zwykłego RTC nie można użyć do wybudzenia systemu operacyjnego.
Lie Ryan,
1
Masz jednak rację; procesor jest o rząd wielkości znacznie bardziej złożony niż nawet alarmowany RTC, a dodanie alarmowanego RTC byłoby bardzo miłe, ponieważ pozwala na rzeczy niemożliwe bez niego.
Lie Ryan,
Oczywiście ma wewnętrzny zegar, w przeciwnym razie musiałbyś wprowadzać czas za każdym razem, gdy się wyłączysz.
Dunhamzzz