如何在Android中获取默认的CALENDAR_ID?

How to get the default CALENDAR_ID in Android?

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