#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.