检索Android中的默认日历ID [英] Retrieve the default calendar id in Android

查看:204
本文介绍了检索Android中的默认日历ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我具有以下用于将事件添加到日历的代码。



问题是我不知道如何检索默认日历ID。

  long calID = 3; 
long startMillis = 0;
long endMillis = 0;
日历beginTime = Calendar.getInstance();
beginTime.set(2013,3,23,7,30);
startMillis = beginTime.getTimeInMillis();
日历endTime = Calendar.getInstance();
endTime.set(2013,3,24,8,45);
endMillis = endTime.getTimeInMillis();

ContentResolver cr = getContentResolver();
ContentValues值= new ContentValues();
values.put(Events.DTSTART,startMillis);
values.put(Events.DTEND,endMillis);
values.put(Events.TITLE,我的测试);
values.put(Events.DESCRIPTION,我的日历测试);
values.put(Events.CALENDAR_ID,calID);
values.put(Events.EVENT_TIMEZONE,以色列/特拉维夫);
Uri uri = cr.insert(Events.CONTENT_URI,values);

行: long calID = 3; 日历ID是



是否可以从Android获取默认日历ID,还是我需要显示日历列表并让用户选择一个? p>

如果不可能,如何显示日历帐户列表?

解决方案

要获取日历列表,您需要像这样查询ContentResolver:

  public MyCalendar [] getCalendar(Context c) {

字符串投影[] = { _id, calendar_displayName};
乌里日历;
calendars = Uri.parse( content://com.android.calendar/calendars);

ContentResolver contentResolver = c.getContentResolver();
CursormanagedCursor = contentResolver.query(calendars,projection,null,null,null);复制代码

if(managedCursor.moveToFirst()){
m_calendars = new MyCalendar [managedCursor.getCount()];
字符串calName;
字符串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] =新的MyCalendar(calName,calID);
cont ++;
} while(managedCursor.moveToNext());
managedCursor.close();
}
返回m_calendars;

}


I have the following code for adding event to calendar.

The problem is that I don't know how to retrieve the default calendar id.

long calID = 3;
long startMillis = 0; 
long endMillis = 0;     
Calendar beginTime = Calendar.getInstance();
beginTime.set(2013, 3, 23, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2013, 3, 24, 8, 45);
endMillis = endTime.getTimeInMillis();

ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(Events.DTSTART, startMillis);
values.put(Events.DTEND, endMillis);
values.put(Events.TITLE, "My Test");
values.put(Events.DESCRIPTION, "My Calendar Test");
values.put(Events.CALENDAR_ID, calID);
values.put(Events.EVENT_TIMEZONE, "Israel/tel-aviv");
Uri uri = cr.insert(Events.CONTENT_URI, values);

The line: long calID = 3; is the calendar id

Is it possible to get the default calendar id from Android, or do I need to show a list of calendars and have the user pick one?

If not possible, how to show the list of calendar accounts?

解决方案

To get the list of calendars, you need to query the ContentResolver like this:

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;

}

这篇关于检索Android中的默认日历ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆