android的默认日历ID

时间:2017-06-03 19:29:46

标签: android calendar content-values

我正在尝试自动添加事件,但我需要日历ID 如果我向id = 1的日历添加事件,有时它不存在或者不依赖于我添加的事件

Image img = barcode.Encode(TYPE.CODE128, "123456789");
gfx.DrawImage(xImage, 0, 0, 100, 100);

ContentValues cv = new ContentValues(); cv.put("calendar_id", 1); 不起作用

如何将事件添加到默认日历。我应该使用id = -1什么?

2 个答案:

答案 0 :(得分:1)

public MyCalendar [] getCalendar(Context c) {

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();
}
return m_calendars;}

您可以尝试使用此代码获取日历ID。

但请查看所有指南 - 如何向日历添加活动。

https://stackoverflow.com/a/9749833/7046743

答案 1 :(得分:1)

int calenderId=-1;
        String calenderEmaillAddress="xxx@gmail.com";
        String[] projection = new String[]{
                CalendarContract.Calendars._ID,
                CalendarContract.Calendars.ACCOUNT_NAME};
        ContentResolver cr = activity.getContentResolver();
        Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/calendars"), projection,
                CalendarContract.Calendars.ACCOUNT_NAME + "=? and (" +
                        CalendarContract.Calendars.NAME + "=? or " +
                        CalendarContract.Calendars.CALENDAR_DISPLAY_NAME + "=?)",
                new String[]{calenderEmaillAddress, calenderEmaillAddress,
                        calenderEmaillAddress}, null);

        if (cursor.moveToFirst()) {

            if (cursor.getString(1).equals(calenderEmaillAddress))
                 calenderId=cursor.getInt(0); //youre calender id to be insered in above your code


        }