我正在尝试使用日历将事件添加到我的应用程序中。根据CalenderContract,每次向日历添加事件时我都需要提供一个常量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。