如何在Android中获取默认的CALENDAR_ID?
问题描述:
我想在我的应用中使用日历添加事件。根据CalenderContract,我需要在每次向日历添加事件时提供一个常量ID。我不知道该怎么做。如何在Android中获取默认的CALENDAR_ID?
我试过使用calender_ID =1
,它在一些设备上工作,而calender_ID = 3
也在某些设备上工作。
我想会有一些默认的ID可以用来使这个工作正常。
任何人都可以请告诉我这可以做什么?
在此先感谢。
答
您可以通过这个下面的代码得到压延ID:
String projection[] = {"_id", "calendar_displayName"};
Uri calendars;
calendars = Uri.parse("content://com.android.calendar/calendars");
ContentResolver contentResolver = c.getContentResolver();
Cursor managedCursor = contentResolver.query(calendars, projection, null, null, null);
if (managedCursor.moveToFirst()){
m_calendars = new MyCalendar[managedCursor.getCount()];
String calName;
String calID;
int cont= 0;
int nameCol = managedCursor.getColumnIndex(projection[1]);
int idCol = managedCursor.getColumnIndex(projection[0]);
do {
calName = managedCursor.getString(nameCol);
calID = managedCursor.getString(idCol);
m_calendars[cont] = new MyCalendar(calName, calID);
cont++;
} while(managedCursor.moveToNext());
managedCursor.close();
}
所以,你可以在运行时得到压延Id和使用它。你不需要硬编码的1或3列ID。
你能告诉我MyCalendar []是什么吗? @chandrakant – droidman
我的方法将采取返回类型的日历,为什么我采取了,但你不需要我编辑我的代码给你 –