По какой причине не работает будильник при выключенном телефоне?

Я знаю, что будильник не работает при выключенном телефоне, но у меня вопрос: Почему это не работает? О чем думали разработчики/инженеры?

Я всегда использовал свои мобильные телефоны в качестве будильников, и даже очень старые мобильные телефоны поддерживают будильники, когда они выключены.

Мой старый кусок дерьма Motorola v360 умел это делать, я думаю, в Android Будильник работает поверх ОС, а не на низком уровне, как в этих более простых телефонах.
Вы действительно имеете в виду выключено, например, отключено, а не просто не подключено к сотовой сети?
Я никогда не выключаю свой. Я использую Tasker, чтобы отключить уведомления на ночь, а если мне действительно не нужны звонки, я использую режим полета.

Ответы (4)

В выключенном состоянии на телефоне нет питания. Это на самом деле выключено . Некоторые телефоны имеют минималистичный режим зарядки, который просто показывает анимацию батареи, но мне еще предстоит увидеть Android-устройство, которое загружается в режиме только часов.

ОС Android разработана таким образом, чтобы потреблять минимальное количество энергии, когда она не используется. Если у вас возникла проблема с разрядкой аккумулятора за ночь, возможно, это связано со сторонним приложением.

Может ли он действительно не экономить количество энергии, необходимое для работы цифровых часов в течение трех лет на крошечной батарейке -таблетке за вычетом накладных расходов на ЖК-экран?
Я уверен, что это возможно, но большинство устройств Android, по-видимому, предназначены для таких людей, как я, которые хотят, чтобы телефон был выключен, когда мы его выключаем.
Так что, если бы он мог это сделать, должна ли быть возможность написать собственный будильник, который мог бы это сделать?
@Roflcoptr: Нет, это не проблема программного обеспечения, поэтому вы не можете просто написать программное обеспечение. Вам нужен аппаратный будильник, чтобы иметь возможность включить выключенный телефон Android.
Я купил настольную док-станцию. Работает хорошо.

Ваш старый мобильный телефон на самом деле не был «выключен», когда вы его выключили.

Не обязательно. Если бы в телефоне был отдельный чип RTC, вы могли бы отключить телефонную часть и включить питание только RTC. Когда срабатывал сигнал RTC, он мог разбудить основной микроконтроллер телефона. Я удивлен, что устройства Android не имеют такого оборудования.
Угу, да обязательно. Если на нем работал будильник, он был включен, а не выключен.

После установки будильника вместо выключения телефона включите режим полета. Таким образом, операционная система закрывается в состояние ожидания с работающими часами.

HTC может связать удержание кнопки питания с включением режима полета и переходом в режим ожидания. Затем, когда пользователь снова удерживает кнопку питания, чтобы включить телефон, телефон фактически выполняет перезагрузку. Функция включения/выключения питания будет выглядеть так же, как и раньше.

Я не согласен; есть некоторые приложения, которые потребляют нетривиальное количество энергии, на которое мы бы жаловались, если бы не было простого способа их сэкономить. Таким образом, когда мы выключаем телефон, он почти не потребляет энергии; единственная используемая мощность - это батарея.
Я не уверен, что понимаю ваш комментарий. Вы имеете в виду, что в режиме полета запущены приложения, которые потребляют нетривиальное количество энергии? Или вы имеете в виду что-то другое?

Я провел "эксперимент" со своим телефоном (Samsung Nexus S, Android 2.3):

Настройки --> Дата и время --> Автоматически --> ВЫКЛ.

Затем я вручную устанавливаю время на неправильное значение (реальное время + 5 минут). Я выключил телефон. Под выключенным я имею в виду действительно выключенный, а не дежурный, статус при будильнике не работает. Через несколько минут я снова включил его.

Отображаемое время по-прежнему было неправильным значением, которое я установил ранее, т. е. обновленным текущим реальным временем + 5 минут.

Это означает, что в телефоне должны быть внутренние часы, работающие даже в выключенном состоянии. На самом деле его может и не быть, но он должен хранить дельту между текущим временем, полученным из сети, и временем, которое я установил; однако это кажется совершенно нереальным.

Итак, это заставляет меня думать, что телефоны Android имеют внутренние часы с собственной батареей, и это должно обеспечивать загрузку телефона в нужное время.

Может чего-то не хватает в самой ОС Android?

PS: Кто-нибудь знает, можно ли заставить телефон просыпаться в определенное время? Если бы это было так, мы просто должны запустить его за пять минут до установки будильника...

Интересная идея, но это будет работать только в том случае, если PIN-код не требуется или если вы также где-то реализуете свой PIN-код. или нет необходимости вводить PIN-код, чтобы AlarmManager заработал?
Пожалуйста, не используйте свой ответ, чтобы ввести новые вопросы. Это не дискуссионный форум. Если вы не отвечаете на исходный вопрос, создайте свой собственный.
Наличие оборудования RTC (часы реального времени), работающего при выключенном телефоне, не означает, что RTC может разбудить телефон после отключения питания. Чтобы RTC разбудил телефон, он должен иметь возможность запускать ЦП, по сути, имея тот же механизм, что и кнопка питания. Кроме того, должен быть механизм, чтобы ОС устанавливала время пробуждения RTC, а затем она должна была хранить это время внутри себя. Механизм аварийного RTC намного сложнее, чем у обычного RTC, который представляет собой простой двоичный счетчик. Обычный RTC нельзя использовать для пробуждения ОС.
Тем не менее, вы правы; ЦП на порядки намного сложнее, чем даже аварийный RTC, и добавление аварийного RTC было бы очень хорошо, поскольку он позволяет делать то, что невозможно без него.
Конечно, у него есть внутренние часы, иначе вам пришлось бы вводить время каждый раз, когда вы отключаете питание.