Свой будильник для android

Программируем будильник или использование AlarmManager в Android

При разработке приложения порой бывает необходимо выполнять какие-то действия в будущем. Например, вы хотите создать будильник или периодически отправлять данные на свой сайт в строго определенное время. Для решения подобных задач в Android используется классAlarmManager, который позволяет выполнять код в требуемый момент времени, даже если ваше приложение не запущено. То-есть AlarmManager — аналог corn в Linux или планировщика задач Windows. Вы говорите, что такой-то кусок кода должен выполниться тогда-то и AlarmManager обеспечивает запуск кода. В англоязычный литературе таймер, который выполняет код в требуемый момент времени обозначается терминомalarm. Давайте в рамках данной статьи называть этот таймербудильником, чтобы отделить это понятие от таймера.

Несколько слов о классе AlarmManager

Фактически класс AlarmManager обеспечивает доступ к сервису планировки задач Android. Для получения объекта этого класса нужно вызвать методContext.getSystemService(Context.ALARM_SERVICE).AlarmManagerрегистрирует в системе интент и когда наступает обозначенное время, AlarmManager запускает этот интент. Если момент вызова приложение закрыто, то оно будет вновь запущено. AlarmManager нужно использовать только в случае, если код должен быть выполнен даже при закрытом приложении, во всех других случаях рекомендуется использовать классHandler.

Класс AlarmManager довольно прост. В нашем распоряжении шесть методов:

  • void cancel(PendingIntent operation) — отменяет установленный таймер для переданного в качестве параметра интента.
  • void set (int type, long triggerAtMillis, PendingIntent operation) — устанавливает будильник, который сработает один раз.
  • void setInexactRepeating (int type, long triggerAtMillis, long intervalMillis, PendingIntent operation) — установка будильника с неточным повторением.
  • setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)— установка будильника с точным повторением.
  • setTime(long millis) — установка системного времени.
  • setTimeZone(String timeZone) — установка временной зоны, выбранной по-умолчанию.

ЗдесьPendingIntent— класс, который представляет интент и связанное с его выполнением действие. Передавая PendingIntent другому приложению Вы тем самым даете ему право запускать кусок кода из своей программы.

В качестве типа будильника (параметрtype) может быть передано одно из значений ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC и RTC_WAKEUP. ELAPSED_REALTIME и ELAPSED_REALTIME_WAKEUP — время задается с момента загрузки устройства, а RTC и RTC_WAKEUP — системное время в UTC. Для ELAPSED_REALTIME и RTC если устройство находится в спящем режиме в момент срабатывания будильника, то связанный с ним интент будет вызван позже, когда пользователь выведет устройство из спящего режима. Для ELAPSED_REALTIME_WAKEUP и RTC_WAKEUP если устройство находится в спящем режиме, оно немедленно пробуждается и вызывается интент.

Программируем приложение-будильник для Android

Давайте в качестве примера разработаем приложение — будильник. При запуске программы пользователю будет показано окно с тремя кнопками. С их помощью пользователь сможет: установить будильник, который срабатывает один раз; будильник, который будет срабатывать периодически; а также удалить ранее установленные будильники.

Читайте также:  Как сделать значок айфона для андроид

Создадим новый проект в макет шаблона добавим три кнопки

КнопкаbtStartустанавливает повторяющийся будильник, кнопкаbtCancel— отменяет его. КнопкаbtOneTime— создает не повторяющийся будильник. Прямо в шаблоне мы указали методы, которые будут вызываться при нажатии на кнопки: startRepeatingTimer, cancelRepeatingTimer и onetimeTimer соответственно. Код этих методов будут приведен в классе Activity.

Для работы сAlarmManagerнапишем отдельный класс. В качестве базового класса используем BroadcastReciever. Наш класс будет управлять зарегистрированным с помощью AlarmManager интентом. Мы переопределим методonReceive(), который будет вызываться после получения интента. Внутри метод onReceive() мы должны попытаться получить связанные с интентом параметры. В своей программе мы будем использовать один параметр ONE_TIME, который позволяет определить, относится ли интент к однократно срабатывающему будильнику или нет. После того, как значение ONE_TIME получено, пользователю показывается соответствующее сообщение.

Также в этом классе определим методы setAlarm(), cancelAlarm() и onetimeTimer(). Конечно эти методы можно было определить и в другом месте, мы включили их в данный класс из соображения простоты примера.

  • Метод setAlarm() устанавливает повторяющийся будильник с помощью метода setRepeating(). Этому методу требуется четыре параметра: тип будильника, время запуска (устанавливаем текущий момент), интервал в миллисекундах, интент, который будет вызываться при срабатывании будильника.
  • Метод cancelAlarm() отменяет зарегистрированный ранее будильник с помощью вызова метода cancel(), которому перезается в качестве параметра интент. При совпадении этого параметра с зарегистрированным ранее интентом, произойдет удаление будильника.
  • Метод onetimeTimer() создает будильник, который срабатывает один раз. Делается с помощью метода set(), которому передается три параметра: тип будильника, время запуска, вызываемый интент.

Ниже приводится файл манифеста. Обратите внимание, для корректной работы программе необходимо дать разрешениеWAKE_LOCK, поскольку мы используем блокировку потока в методе onReceive(). Также тут мы регистрируем AlarmManagerBroadcastReceiver, как получатель широковещательных сообщений

Теперь давайте напишем класс, в котором реализуем обработчики кнопок. Здесь мы создадим экземпляр описанного выше класса AlarmManagerBroadcastReciever и будем вызывать методы setAlarm(), cancelAlarm() и setOnetime().

При надатии на кнопки будут установлен будильник. Исходный код проекта можно скачатьздесь.

Источник

14 приложений будильников для смартфона

Я пробовал несколько сторонних будильников для Android, но в итоге остановился на стоковом варианте. Если вы всё-таки ищете что-то более интересное, в этой статье я собрал 14 самых модных будильников.

Alarm Clock for Heavy Sleepers (Android)

Достаточно простое приложение, которое эффективно показывает себя в работе. Пользователю предоставляется возможность установки любого количества будильников. Кроме того, каждый из них работает по режиму, гарантирующему пробуждение (обычные будильники через определённое время отключаются, а данное приложение не позволит вам перевернуться и снова уснуть). Каждый будильник имеет настройки, система подаёт сигналы, свидетельствующие об обратном отсчёте, а также позволяет сделать звонок одноразовым (если вы просыпаетесь сразу) или повторяющимся (для тех, у кого крепкий сон или его недостаток). Доступны как платная, так и бесплатная версии программы, а разницы в них почти нет: единственное отличие – отсутствие рекламы в платном приложении.

AlarmMon (Android)

AlarmMon – отличное приложение для смартфона, достойный помощник каждого! Система выполняет основной набор функций (как и другие будильники). К примеру, юзер может установить сразу несколько звонков, чтобы точно пробудиться. Однако отличительной чертой этого приложения является наличие доп. возможностей: доступны некоторые герои популярных мультфильмов (именно они помогают проснуться) и другие интересные мелочи, заставляющие ранним утром задействовать мозг владельца смартфона (это не даст вам снова уснуть). Программа доступна бесплатно, однако за отдельную плату имеется возможность подключения различных дополнений.

Читайте также:  Android all in one toolbox apk

Alarmy (Android)

Alarmy является будильником, который раздражает больше всего среди приложений-конкурентов. Система предварительно попросит добавить фотографию какого-либо предмета, находящегося в вашем доме. Далее пользователь установит будильник, а в назначенное время он сработает. Заминка в том, что для отключения звонка нужно встать и подойти к предмету, фото которого предварительно было загружено. Только после съёмки этого предмета будильник выключится. Учёными уже доказано, что после подъёма с комфортной кровати человек окончательно просыпается – именно по этой причине приложение работает так.

Также Alarmy умеет задавать математические примеры, просить потрясти гаджет и требовать ещё много чего. Интересно и то, что приложение блокирует возможность отключения устройства. В общем, если коротко, Alarmy – это уникальный будильник, который точно разбудит соню. Кстати, для тех, кто подписан на Google Play Pass, приложение доступно абсолютно бесплатно.

Challenges Alarm Clock (Android)

Софт Challenges Alarm Clock – достойный будильник, которому удастся пробудить и владельца смартфона, и его мозг. Пользователь может установить несколько звонков на разное время, поставить любые песни или мелодии и настроить повтор сигнала. Также приложение включает в себя игры и головоломки (решив незатейливую задачку спросонья, человек точно проснётся). Кроме того, программа имеет уникальную функцию мягкого пробуждения, а потому является отличным вариантом по низкой цене!

Early Bird Alarm Clock (Android)

Early Bird Alarm Clock считается одним из самых востребованных софтов, выполняющих функцию будильника на смартфоне. Система оснащена всеми базовыми опциями и возможностью установки любого количества будильников. В приложении доступно использование разнообразных тем и сигналов. Кроме того, система может в автоматическом режиме ежедневно изменять мелодию, чтобы пользователь не стал ненавидеть одну конкретную композицию. Доступны две версии: платная и бесплатная. В первой рекламы нет, а во второй – есть (больше отличий нет).

Google Assistant (Android)

Google Assistant – многофункциональное приложение, которое может стать отличным будильником на смартфоне. Пользователь получит возможность использовать таймеры обратного отсчёта, устанавливать напоминания и делать заметки в календаре событий. Важно, что данное приложение является абсолютно бесплатным и выполняет не только функцию будильника, но и многие другие. В общем, ассистент от «Гугл» – добротный софт (особенно для тех, кто уже пользуется им).

I Can’t Wake Up (Android)

Английское выражение I Can’t Wake Up переводится на русский язык в качестве «Я не могу проснуться», а сам софт отлично помогает справиться с такой проблемой. Система заставляет юзера встать до того момента, когда он нажмёт на кнопку «Позже» или «Повтор». Для этого создано восемь внутренних режимов. Пользователям доступны различные варианты оформления их будильников и другие интересные, а также полезные функции. «Я не могу проснуться» является отличным и при этом необычным будильником. Софт доступен в бесплатной версии с рекламой и в платной без неё.

Loud Alarm Clock (Android)

Loud Alarm Clock – простое приложение, представляющее собой обычный громкий будильник. Софт имеет встроенный усилитель звука, благодаря чему звонок будильника становится намного громче обычного. Чтобы использовать приложение, достаточно скачать его, установить время и выбрать подходящий звук (если хотите, система автоматически подберёт случайную мелодию). Используйте приложение осторожно, так как очень громкие звуки могут негативно сказаться на состоянии вашего смартфона. В платной версии приложения доступны дополнительные функции.

Читайте также:  Обои для андроида деньги

Sleep as Android (Android)

Sleep as Android – популярное приложение, позволяющее отслеживать сон владельца смартфона. Как бы странно это ни звучало, но софт заставит вас спать со своим гаджетом практически в обнимку (это необходимо для того, чтобы приложение могло сделать анализ сна, определить, как хорошо вы спите и нет ли во время сна проблем с дыханием). При этом использовать софт в качестве средства диагностики не рекомендуется, так как лучше обратиться к врачу. Система интегрируется с самыми популярными смарт-часами. Будильник в данном случае простой, но анализ сна – явная особенность софта.

Sleepzy (Android)

Sleepzy (раньше софт назывался Good Morning Alarm Clock) – приложение, которое появилось не так давно. Кроме основных функций, оно отслеживает сон (да, вам придётся спать в кровати со своим смартфоном), а также функционирует в качестве будильника. В списке самых оригинальных функций от Sleepzy – генератор белого шума, прогноз погоды и прочее.

Rise Alarm Clock (iOS)

Rise Alarm Clock – удобное универсальное приложение с минималистичным пользовательским интерфейсом. Хотя красоту и простоту часто можно переоценить, они являются важными качествами приложения, которое вы собираетесь использовать вечером (после тяжёлого рабочего дня) и утром, когда ваш мозг ещё недостаточно хорошо работает.

Чтобы установить будильник, выберите время, когда вы хотите проснуться, просто перетащив бегунок вверх или вниз. Свайп влево или вправо позволит вам включить или выключить будильник. В качестве сигнала можно выбрать одну из многих приятных мелодий или любую песню, проигрываемую через медиаплейер iTunes.

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

Clocks (iOS)

Приложение Clocks предлагает очень простой интерфейс с тремя основными типами часов. Функция «Мировые часы» показывает время в 6 точках планеты с возможностью выбора из более чем 500 городов разных стран.

Alarm Clock Free (iOS)

Alarm Clock Free – это простое приложение, показывающее время и подробную информацию о погоде. У вас будет возможность использовать несколько сигналов будильника, настраиваемый повтор и функцию плавного пробуждения. Будильник будет звенеть даже в тех случаях, когда приложение работает в фоновом режиме.

Living Earth – Clock & Weather (iOS)

Living Earth – Clock & Weather даёт вам будильник с музыкальным плейлистом, прогноз погоды с картами и даже уведомления о тропических циклонах. Вы можете использовать приложение на своём iPhone, iPad или же Apple Watch, поэтому, независимо от того, каким устройством вы обладаете, всё необходимое будет у вас под рукой.

Alarm Clock HD (iOS)

Alarm Clock HD – это полнофункциональное приложение, которое поможет вам проснуться и подготовиться к новому дню. Помимо будильника вам будет доступен прогноз погоды, а также аварийный фонарик, включить который получится быстрее, чем войти в Центр управления телефоном.

Alarm Clock 4 Free (iOS)

Alarm Clock 4 Free содержит мощный набор опций, которые позволят вам установить условия вашего пробуждения. Независимо от того, хотите ли вы начать свой день со встроенной мелодии или с любимой песни, вы полностью контролируете ситуацию. Вы даже можете сделать так, чтобы звук вашего будильника постепенно усиливался (это обеспечит долгожданное пробуждение после сна).

Источник

Оцените статью