Iphone уведомление день рождения

Как получать напоминания о днях рождения на iPhone, iPad и Mac

Всегда приятно, когда о вашем дне рождения помнят. В социальных сетях есть функция напоминаний о днях рождения друзей, но не все пользуются социальными сетями. Чтобы не забыть о днях рождения своих близких, вы можете использовать свой iPhone, iPad или Mac. Ниже мы расскажем, каким образом.

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

Как отображать дни рождения в Контактах и Календаре

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

Процесс будет одинаковым для iPhone, iPad и Mac.

1) Откройте приложение Контакты и выберите человека, чей день рождения хотите добавить.

2) Нажмите Править в правом верхнем углу экрана.

3) Пролистайте вниз и выберите Добавить день рождения.

4) Выберите месяц, дату и даже год рождения, если вы его знаете.

5) Нажмите Готово.

Теперь на экране этого контакта будет отображаться ещё и его день рождения.

Теперь нужно настроить уведомления о днях рождения. Делается это через Календарь.

1) Откройте приложение Календарь и внизу выберите Календари.

2) Поставьте галочку рядом с пунктом Дни рождения.

Теперь дни рождения ваших контактов будут отображаться и в Календаре.

Чтобы настроить уведомления о днях рождения в iOS, зайдите в Настройки > Календарь > Напоминания по умолчанию > Дни рождения. На Mac откройте Календарь > Настройки > Уведомления. Выберите, когда хотите получать уведомления о днях рождения.

Способ с Контактами работает в большинстве случаев, но не во всех. К примеру, вы можете захотеть добавить напоминание о дне рождении своего питомца или родственника ребёнка, у которого ещё нет телефона. В таком случае подойдёт способ, о котором мы расскажем дальше.

Приложение с напоминаниями о днях рождения

Приложения с напоминаниями о днях рождения отлично подойдёт, чтобы следить за днями рождения всех своих друзей и близких. Хороший пример – приложение Birthday Reminder & Countdown. Его можно подключить к Контактам для синхронизации дней рождения, которые у вас уже сохранены. Также можно добавить другие дни рождения, установить напоминания, просматривать отсчёт дней и использовать удобный виджет.

Для начала скачайте приложение Birthday Reminder & Countdown из App Store бесплатно. Затем следуйте шагам ниже.

1) Когда вы запустите приложение, вам будет предложено перенести в него сохранённые дни рождения из Контактов.

2) Затем выберите, хотите ли вы получать уведомления о днях рождения. Можете отказаться, у вас будет возможность установить их потом.

3) Если вы перенесли дни рождения из Контактов, вы увидите весь список.

В списке отображается имя человека, его возраст, дата рождения и количество дней до их следующего дня рождения. Открыв контакт, вы увидите опции звонка, сообщения или отправки e-mail. Также можно установить напоминания только для этого человека. При желании вы можете настроить и другие детали.

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

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

Birthday Reminder & Countdown – бесплатное приложение со встроенными покупками. Его можно использовать на iPhone, iPad и Apple Silicon M1 Mac.

Не важно, сколько вам лет, всегда приятно, когда вас поздравляют с днём рождения. Сделайте всё возможное, чтобы не забывать о днях рождения своих близких!

Читайте также:  Как активировать найденный айфон

Источник

Iphone уведомление день рождения

Как известно, компания Apple не предусмотрела возможности менять время оповещения о днях рождения. Т.е. день сменить можно (три варианта — в день события, за 1 день, или за 2 дня), а время — строго 9:00. Кто и почему в Apple решил, что 9 утра — самое то, не понятно. Лично мне удобно получать такое напоминание в 12:00. Т.к. ну кто будет ни свет ни заря звонить своему другу в 9 утра, чтобы поздравить его с днем рождения? Он спит еще в это время. И я тоже. 🙂
Поэтому возникло желание найти способ это исправить. А как известно, нужда и лень — двигатели прогресса. 🙂 Таким образом появилось решение, а вслед за ним и эта инструкция.

Для работы понадобится:
— файловый менеджер на компьютере для работы с аппаратом — например, iTools или iFunBox,
— файловый менеджер в аппарате — iFile,
— браузер Mozilla Firefox,
— установленное к нему дополнение SQLite Manager.
И браузер, и дополнение к нему распространяется бесплатно, скачать можно на сайте разработчика.

Перед началом работ делаем респринг в аппарате, чтобы все временные файлы обновили содержимое базы, хранящей события и напоминания.

ВАЖНО. Пока будем производить изменения с файлом базы данных, нельзя на аппарате вносить изменения в события и напоминания в приложении Календарь, а также в дни рождения адресной книги.

1. Идем в аппарате по пути /User/Library/Calendar и видим там файлы, как на скриншоте ниже. В ней всего 6 файлов, один из которых Calendar.sqlitedb – это база данных, хранящая информацию о событиях календаря. Копируем все файлы на компьютер в качестве бекапа.

2. Создаем на компьютере отдельную папку, в которую копируем еще раз из всего списка только файл Calendar.sqlitedb. Будем считать этот файл нашей рабочей копией, в которой мы будем производить изменения. ВАЖНО – копируем именно в отдельную папку, дабы не испортить сделанный бекап, т.к. в случае восстановления данных понадобятся все файлы, или как минимум: Calendar.sqlitedb, Calendar.sqlitedb-shm и Calendar.sqlitedb-wal.
3. Переходим в браузер Mozilla Firefox, и выбираем в меню «Инструменты» пункт «SQLite Manager».

Перед нами откроется окно для работы с базами данных.

4. Жмем на кнопку «Открыть» (или выбираем в меню: База данных – Подключить базу данных). В открывшемся окне выбора файлов убираем фильтр отображения в правом нижнем углу: т.е. меняем фильтр с «Файлы БД SQLite (*sqlite;)» на «Все файлы (*.*)».

Переходим в этом окне к папке, которую создали на шаге 2, и выбираем рабочую копию нашей базы – файл Calendar.sqlitedb.
Перед нами откроется собственно база данных.
5. В меню «Триггер» выбираем пункт «Создать триггер».

Откроется окно, как на скриншоте ниже.

Далее нам надо аккуратно заполнить некоторые поля (выделенные красным) этого окна:
— в поле «Имя триггера (N)» вводим с клавиатуры название нашего триггера; название должно быть латинскими буквами и не содержать знаков препинания; я назвал триггер Change_Birthday_Alarm;
— в списке выбора справа от названия «в таблице/производной таблице (A)» выбираем таблицу Alarm;
— в группе «Событие базы данных» в поле «До/после» выбираем AFTER;
— там же рядом в поле «Событие» выбираем UPDATE;
— переходим в поле «Этапы триггера (разделяйте точкой с запятой)» и копируем туда следующий текст:

После этого окно должно выглядеть так:

6. Жмем ОК и закрываем окно работы с базой (либо через крестик в верхнем правом углу окна, либо через меню «База данных – Выход»).
Таким образом, мы создали в базе данных правило, которое будет выполняться при определенных условиях и изменять время оповещения о днях рождения с 9:00 на 12:00.
7. Теперь копируем файл Calendar.sqlitedb нашей рабочей копии в аппарат. При копировании поверх имеющегося там файла права на скопированный файл автоматически применятся к копируемому файлу.
8. Открываем приложение Календарь и проверяем, что все события календаря на месте.
Затем идем в приложение Настройки в меню «Почта, адреса, календари», далее – в подпункт «Стандартные напоминания», и задаем нужную настройку напоминания по умолчанию для «Дни рождения». Если какая-то настройка ранее была установлена, то меняем ее на любую другую из списка и затем ставим нужную (это нужно, чтобы время для каждого напоминания обновилось в базе данных согласно нашим доработкам).

Читайте также:  Device code on iphone

На этом настройка нового времени оповещения завершена. Теперь напоминания будут звучать не в 9:00, а в 12:00.

Несколько пояснений – что мы сделали в базе данных.
Мы создали правило (триггер), по которому мы меняем (обновляем) записи в базе данных, а конкретно, сдвигаем время оповещения на три часа вперед. Сдвиг мы задали в тексте запроса (который скопировали на шаге 5) путем добавления к стандартному времени оповещения еще 10800 секунд (это 3 часа) – в тексте запроса можно увидеть это число.

Данное событие возникает каждый раз для всех записей о днях рождения, когда мы в приложении Настройки меняем настройку времени по умолчанию. А также, когда мы создаем новую запись о дне рождения, или изменяем существующую, в адресной книге. Новым правилом (триггером) мы после того, как запись обновилась стандартным образом в базе данных – перезаписываем ее, изменяя время.

Если вам нужно настроить иное время оповещения, то в тексте запроса замените 10800 на свое значение.

Вопрос 1. Не получилось с первого раза сделать правильно триггер на шаге 5, но триггер уже создан.
Ответ. Надо удалить созданный триггер и затем создать его заново. ВАЖНО! Не допустимо создавать два и более одинаковых триггеров, иначе они будут конфликтовать друг с другом!
Для удаления триггера находим в левой части окна работы с базой данных раздел Триггеры, раскрываем его и находим только что созданный нами триггер. Жмем на него правой кнопкой мыши, и во всплывающем меню выбираем «Удалить триггер».

Вопрос 2. После копирования базы в аппарат пропали все напоминания, и календарь глючит, не запоминает новые события.
Ответ.
Шаг 1. Проверить права на файл Calendar.sqlitedb. Права должны быть следующие:
Собственность
Владелец: mobile
Группа: mobile

Права доступа
Пользователь: Прочесть, Записать
Группа: Прочесть
Все: Прочесть

Шаг 2. Если первое не помогло – по всей видимости, нарушена синхронизация с временными файлами: Calendar.sqlitedb-shm и Calendar.sqlitedb-wal.
Необходимо скопировать в аппарат обновленные временные файлы. Для этого делаем следующее:
— открываем заново нашу рабочую копию базы (если база была открыта – закрываем и открываем снова, чтобы временные данные записались в базу, т.к. в файл база сохраняется при закрытии),
— идем в папку, где расположена наша рабочая копия базы на компьютере, видим там вместо одного три файла: Calendar.sqlitedb, Calendar.sqlitedb-shm и Calendar.sqlitedb-wal,
— копируем все три файла в аппарат,
— проверяем в аппарате права на файлы (на все файлы права такие же, как на Calendar.sqlitedb).

Шаг 3. Если и второе не помогло — восстанавливаемся из резервной копии. Проверяем в аппарате права на файлы (на все файлы права такие же, как на Calendar.sqlitedb). Проделываем настройки триггера с начала.

Эти действия проделывать не обязательно. Но будет интересно для тех, кто хочет навести красоту в меню.
Поскольку мы изменили время напоминания, теперь выглядит бессмысленно время «9:00» в настройках, например «В день события (9:00)». Однако, меню выбора моментов оповещения для дней рождения и для событий на весь день – одно и то же. А для событий на весь день мы время не меняли.

Поэтому скачиваем из вложения архив System.rar и загружаем из него файлы в папки в соответствии с тем, как они разложены в архиве. Подчеркну, что в архиве файлы для iOS 7.
Тем самым мы сделаем следующее: уберем время (9:00) из меню выбора дней оповещения, перенесем его в заголовки в меню Настройки и в Календаре. Ну и заодно исправим отображение списка выбора срока напоминания для обычных событий.
Будет как на скриншотах.

Читайте также:  Сервисное обслуживание apple по серийному номеру

Определения.
Триггер – это правило изменения записей какой-либо таблицы в базе данных с помощью запроса на языке SQL, инициирующееся (правило) при возникновении определенных событий в базе данных (как например – добавление нового события, изменение события, удаление события).
Запрос – это программный код для обращения к базе данных и произведения действий с данными на языке SQL.
Подзапрос – запрос в составе другого запроса.
SQL (structured query language – «язык структурированных запросов») – формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных.
Запись – строка таблицы.
Поле – колонка в записи (колонка таблицы в одной отдельной строке).

Разберем подробно созданный нами запрос:

1. UPDATE Alarm:
— обновить таблицу Alarm (Alarm – имя таблицы в базе данных)

2. SET trigger_interval=10800+(SELECT Sum(default_alarm_offset) FROM Store WHERE ROWID=2):
а) установить для поля trigger_interval значение, вычисляемое справа от знака равенства (поле trigger_interval – поле таблицы Alarm, хранящее время оповещения для данного события, время хранится в секундах),
б) значение справа от знака равенства:
— 10800 – время в секундах, задающее сдвиг от стандартного времени на 3 часа вперед,
— подзапрос SELECT Sum(default_alarm_offset) FROM Store WHERE ROWID=2 означает следующее: выбрать сумму по колонке default_alarm_offset из таблицы Store, и только для той строки (записи) таблицы, у которой поле ROWID равно 2;
○ поле default_alarm_offset в таблице Store хранит настройку времени по умолчанию, которую мы задаем в приложении Настройки в аппарате,
○ поле ROWID – содержит уникальный идентификатор номера строки (в данном случае просто порядковый номер строки),
○ значение, которое мы получим подзапросом – 32400 секунд (если в настройках выставлено оповещать в день события в 9:00) – т.к. таблица Store во второй строке с поле default_alarm_offset будет содержать значение 32400).

3. WHERE ROWID=OLD.ROWID AND owner_id IN (SELECT ROWID FROM CalendarItem WHERE calendar_id=3) – читается так:
— где поле ROWID таблицы Alarm равно значению такого же поля ROWID из таблицы OLD и поле owner_id таблицы Alarm содержится в списке, формируемом подзапросом в скобках,
— подзапрос SELECT ROWID FROM CalendarItem WHERE calendar_id=3 читаем так: выбрать поля ROWID из тех строк таблицы CalendarItem, где поле calendar_id равно 3;
таблица OLD – виртуальная таблица, которая возникает в момент обновления записи, и хранить ее старое содержимое,
○ ROWID – номер записи,
○ CalendarItem – таблица, хранящая сведения о событии,
○ calendar_id – поле этой таблицы, хранящее идентификатор календаря (все календари в базе имею свои идентификаторы, различают календарь для хранения обычных событий, и календарь хранения напоминаний о днях рождения, а также, могут быть другие календари, синхронизированные с Облаком, Google и т.п.).

Т.е. мы при обновлении записей таблицы Alarm установим время напоминания (trigger_interval) в значение 43200 секунд, но только для той записи, которая только что обновилась (совпадает с ROWID из таблицы OLD), и если значение в поле owner_id (идентификатор родителя) совпадает с одним из значений идентификаторов (ROWID) записей календаря (таблица CalendarItem), являющегося календарем дней рождения (calendar_id = 3). Значение базового времени напоминания (32400 секунд) мы получим из поля default_alarm_offset строки 2 таблицы Store.

P.S. Отдельная благодарность directorgeneral за наводку на мысль о способе решения.

Сообщение отредактировал Black Fish — 13.11.14, 07:46

Источник

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