如何在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。

+0

你能告诉我MyCalendar []是什么吗? @chandrakant – droidman

+0

我的方法将采取返回类型的日历,为什么我采取了,但你不需要我编辑我的代码给你 –