android.database.sqlite.SQLiteException при добавлении напоминания в календарь - PullRequest
1 голос
/ 06 марта 2019
 @SuppressLint({"RxLeakedSubscription", "RxSubscribeOnError"})
public static long pushAppointmentsToCalender(Activity curActivity, String title, String addInfo, String place, int status, long startDate, boolean needReminder) {
    /***************** Event: note(without alert) *******************/

    ContentResolver cr = curActivity.getContentResolver();
    ContentValues values = new ContentValues();
    values.put(CalendarContract.Events.DTSTART, startDate);
    values.put(CalendarContract.Events.DTEND, startDate);
    values.put(CalendarContract.Events.TITLE, title);
    values.put(CalendarContract.Events.DESCRIPTION, addInfo);
    values.put(CalendarContract.Events.CALENDAR_ID, startDate);
    values.put(CalendarContract.Events.EVENT_TIMEZONE, "Asia/Calcutta");
    @SuppressLint("MissingPermission") Uri uriEvent = cr.insert(CalendarContract.Events.CONTENT_URI, values);

    long eventID = Long.parseLong(uriEvent.getLastPathSegment());
    try {
        if (needReminder) {
            ContentResolver crreminder = curActivity.getContentResolver();
            ContentValues valuesreminder = new ContentValues();
            valuesreminder.put(CalendarContract.Reminders.EVENT_ID, eventID);
            valuesreminder.put(CalendarContract.Reminders.MINUTES, 15);
            valuesreminder.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
            @SuppressLint("MissingPermission") Uri uri = crreminder.insert(CalendarContract.Reminders.CONTENT_URI, valuesreminder);
        }
    }catch (Exception e){
        e.printStackTrace();
    }
    return eventID;
}

Ошибка, которую я получаю в журналах:

2019-03-06 16:29:16.935 23021-23021/com.medikoe.connect.debug W/System.err: android.database.sqlite.SQLiteException
2019-03-06 16:29:16.936 23021-23021/com.medikoe.connect.debug 

Идентификатор события успешно создан, но при вставке URI для напоминания создается исключение sqlite.Пожалуйста, помогите!

1 Ответ

0 голосов
/ 27 марта 2019

Обновление: я обнаружил, что эта ошибка может возникать в двух случаях.

  1. Если вы не настроили приложение календаря Google в своем телефоне /Эмулятор этой ошибки произойдет.Затем убедитесь, что вы настроили приложение календаря Google с учетной записью gmail, прежде чем запускать приложение.

  2. Если вы передаете неправильное форматированное или ложное время событию или напоминанию.используйте unix time с правильным часовым поясом.

...