iOS - Программно установленное напоминание о событии «Выйти из машины» - PullRequest
0 голосов
/ 29 января 2020

С последними версиями iOS внутри приложения Напоминания теперь мы можем создать напоминание , которое будет показано в определенном месте (вид), и если вы выберете эту опцию затем вы можете выбрать желаемое местоположение, будь то реальное физическое местоположение (например, указанный c адрес или местоположение, уже сохраненное на вашем телефоне) или момент , когда вы садитесь в машину или выходите из нее (если вы подключены к нему через Bluetooth).

Начиная с iOS 10, у нас есть EventKit Framework для программного создания напоминания с необходимой нам информацией. Можно установить его заголовок, дату, когда мы хотим, чтобы он был запущен (если это логи c, которые мы хотим), конкретное c местоположение с координатами и c.

. искал в Интернете, как повторить описанное выше поведение, то есть настроить напоминание, которое будет запущено, когда пользователь выйдет из машины (если вы явно были в паре с ним), но не нашел ничего, что позволило бы нам это сделать, только как установить реальное заданное c местоположение с координатами (см. код ниже).

Итак ... возможно ли это сделать программно или эта функция доступна только через приложение «Напоминания»?

Спасибо, любая помощь будет оценена.

- (IBAction)addReminder {
    EKReminder *reminder = [EKReminder reminderWithEventStore:store];

    EKStructuredLocation *place = [EKStructuredLocation locationWithTitle:@"Getting out of car"];
    place.radius = 5*1000;

    // DON'T WANT TO SET SPECIFIC PHYSICAL LOCATION, BUT "GETTING OUT OF CAR" EVENT, LIKE IN REMINDERS APPLICATION
    // place.geoLocation = [[CLLocation alloc] initWithLatitude:0.0 longitude:0.0];

    EKAlarm *alarm;
    alarm.structuredLocation = place;
    alarm.proximity = EKAlarmProximityLeave;

    [reminder setTitle:@"Don't forget your things!"];
    [reminder setPriority:EKReminderPriorityHigh];

    [reminder setAlarms:@[alarm]];
    [reminder setCompleted:NO];

    EKCalendar *defaultReminderList = [store defaultCalendarForNewReminders];
    [reminder setCalendar:defaultReminderList];

    NSError *error = nil;
    BOOL success = [store saveReminder:reminder
                                commit:YES
                                 error:&error];
    if (!success) {
        NSLog(@"Error saving reminder: %@", [error localizedDescription]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...