Работа с календарем Android

#android

#Android

Вопрос:

Я пытаюсь добавить запись в календарь Android (2.2), но у меня постоянно возникает какая-то ошибка. Я перепробовал множество тестов, но безуспешно.Что не так, пожалуйста? Извините за мой английский.

Исходный код:

 String calName; 
        String calId = null;
        String[] projection = new String[] { "_id", "name" };
        Uri calendars = Uri.parse("content://com.android.calendar/calendars");
        Cursor managedCursor = managedQuery(calendars, projection, "selected=1", null, null);
        ContentValues event = new ContentValues();
        DateFormat date = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");

        long time = System.currentTimeMillis();
        String timeStr = date.format(time);
        Log.d(TAG, "Value of timeStr: "   timeStr);



        if (managedCursor.moveToNext()) {
            calName = managedCursor.getString(managedCursor.getColumnIndex("name"));
            calId = managedCursor.getString(managedCursor.getColumnIndex("_id"));
            event.put("calendar_id", calId);
            event.put("title", "Event Title");
            event.put("description", "Description");
            event.put("eventLocation", "New York");
            event.put("dtstart", timeStr );
            event.put("dtend", timeStr);
            Uri eventsUri = Uri.parse("content://com.android.calendar/events");
            Uri url = getContentResolver().insert(eventsUri, event);


            }
  

Ответ №1:

Во-первых, пожалуйста, опубликуйте StackTrace для вашей ошибки. Второе: прежде чем попробовать managedCursor.moveToNext, используйте:

 managedCursor.moveToFirst();
  

и затем

 while(managedCursor.moveToNext()){ };
  

Комментарии:

1. Я не могу опубликовать StackTrace, потому что в моем AVD нет календаря, я тестирую это на своем HTC Desire (если есть какой-либо способ установить Android calendar в AVD или отладить проект с моего телефона, пожалуйста, скажите мне об этом ..) и managedCursor.moveToFirst(); а затем while (managedCursor.moveToNext ()){ }; я уже пробовал это, но это не сработало

2. Вы правы, в AVD нет календаря. Вы можете отлаживать приложение на своем телефоне с помощью Logcat, искать Logcat и Android в Google.