Iphone как настроить уведомление дня рождения

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. Открываем приложение Календарь и проверяем, что все события календаря на месте.
Затем идем в приложение Настройки в меню «Почта, адреса, календари», далее – в подпункт «Стандартные напоминания», и задаем нужную настройку напоминания по умолчанию для «Дни рождения». Если какая-то настройка ранее была установлена, то меняем ее на любую другую из списка и затем ставим нужную (это нужно, чтобы время для каждого напоминания обновилось в базе данных согласно нашим доработкам).

Читайте также:  Прочитать чужие сообщения 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) из меню выбора дней оповещения, перенесем его в заголовки в меню Настройки и в Календаре. Ну и заодно исправим отображение списка выбора срока напоминания для обычных событий.
Будет как на скриншотах.

Определения.
Триггер – это правило изменения записей какой-либо таблицы в базе данных с помощью запроса на языке 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

Источник

Как на iPhone 12/11/X(s/r)/8/7 включить напоминания о днях рождения

Давайте я расскажу вам как настроить iPhone чтобы напоминал о днях рождения ваших контактов из адресной книги. Для этого можно использовать встроенный функционал iOS или сторонние приложения из App Store (бесплатные).

Читайте также:  Iphone leather wallet with magsafe что это

p, blockquote 1,0,0,0,0 —>

Данная статья подходит для всех моделей iPhone 12/11/Xs(r)/X/8/7 и Plus на iOS 14. На более старых версиях могут отличаться или отсутствовать указанные в статье пункты меню и аппаратная поддержка.

p, blockquote 2,0,0,0,0 —>

Вносим вручную данные о днях рождения

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

p, blockquote 3,0,0,0,0 —>

Выполняем следующие шаги:

p, blockquote 4,0,1,0,0 —>

  • Переходим в карточку контакта в приложении «Контакты» или «Телефон», выбираем в верхнем правом углу «Изменить».
  • Список прокручиваем до раздела «Добавить день рождения», там указываем дату и нажимаем «Готово».

Импорт данных из аккаунта Gmail

Если ранее вы использовали гаджет на Андроид или просто в Gmail вели адресную книгу, то можно осуществить импорт данных о днях рождения из данного сервиса:

p, blockquote 5,0,0,0,0 —>

  • Выбираем меню «Настройки», затем «Контакты» и «Учетные записи». Переходим в раздел «Добавить учетную запись».
  • Вводим логин, пароль, отмечаем раздел «Календари» и «Контакты». На Айфон будут загружены все адреса, электронная почты, телефоны и дни рождения из аккаунта Gmail.

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

p, blockquote 6,0,0,0,0 —>

Настраиваем напоминания

Теперь нужно только включить уведомления про дни рождения. Для этого выполняем следующую инструкцию:

p, blockquote 7,0,0,0,0 —>

  • Открываем «Настройки» и «Календарь», нажимаем на пункт «Напоминания по умолчанию».
  • Выбираем раздел «Дни рождения», где указываем подходящий вид напоминания.
  • Теперь проверяем, чтобы для программы «Календарь» были активированы системные уведомления (меню «Настройки», затем «Уведомления» и «Календарь»).

Айфон может напомнить о дне рождении за 1 или 2 дня, в день мероприятия или за неделю. Весь список с датами будет продемонстрирован в программе «Календарь».

p, blockquote 8,0,0,0,0 —>

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

p, blockquote 9,1,0,0,0 —>

Переносим информацию на все устройства

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

p, blockquote 10,0,0,0,0 —>

Необходимо в меню настроек iCloud активировать синхронизацию календаря. Это сделать нужно на всех гаджетах.

p, blockquote 11,0,0,0,0 —>

Настраиваем напоминание о днях рождения на Айфоне через приложение HappyDays

В Апп Сторе имеется много программ, которые позволяют организовать напоминания про дни рождения. Давайте рассмотрим одно из самых популярных – HappyDays.

p, blockquote 13,0,0,0,0 —>

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

p, blockquote 14,0,0,1,0 —>

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

p, blockquote 15,0,0,0,0 —>

Включаем календарь «Дни рождения» на Mac

Пользователи гаджетов iPhone дни рождения добавляют в дополнительные поля контактов. На устройствах Mac следует только активировать отображение календаря «Дни рождения», где эти даты будут отмечены.

p, blockquote 16,0,0,0,0 —>

Запускаем приложение «Календарь», а в строке меню при помощи аналогичной вкладки переходим в «Настройки» (для этого нажимаем клавиши «Command (⌘) + запятая»).

p, blockquote 17,0,0,0,0 —>

В разделе «Основные» необходимо напротив строки «Показывать календарь дней рождения» поставить галочку.

p, blockquote 18,0,0,0,0 —>

Теперь, когда наступит событие, вам поступит системное уведомление заблаговременно и непосредственно в указанный день рождения человека. Для получения уведомления нужно их настроить в разделе «Предупреждения».

Добавляем на Mac к контакту день рождения

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

Активный пользователь «яблочной» продукции, способный провести ремонт любого гаджета Apple и дать консультацию по работе.

Есть вопросы? Задавайте в комментариях к статье.

Источник

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