自定义日历同步添加帐户的android [英] Calendar sync with custom add account in android

查看:147
本文介绍了自定义日历同步添加帐户的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要添加日历事件中,我能够添加的帐户,但我不`吨知道如何与日历同步。

I want to add events in calendar, i am able to add account but i don`t know how to sync with calendar.

我应该创建一个新的日历ID? 如何验证事件的日历中创建?

should i create a new calendar id ? how to verify event is created on calendar?

推荐答案

这是工作我想起我的工作在Android 4.0

this is work for me remember I am working on android 4.0

 void createCalendar(Datahelper dh, Context mContext, Account account) 
      { 
        final ContentValues v = new ContentValues(); 
            v.put(CalendarContract.Calendars.NAME,account.name);
            v.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, account.name);                  
        v.put(CalendarContract.Calendars.ACCOUNT_NAME, account.name);       
        v.put(CalendarContract.Calendars.ACCOUNT_TYPE, account.type); 
        v.put(CalendarContract.Calendars.CALENDAR_COLOR, Color.GREEN); 
        v.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL,Calendars.CAL_ACCESS_OWNER);         
        v.put(CalendarContract.Calendars.OWNER_ACCOUNT, account.name); 
        v.put(CalendarContract.Calendars._ID, 123);// u can give any id there and use same id any where u need to create event   
        v.put(Calendars.SYNC_EVENTS, 1); 
        v.put(Calendars.VISIBLE, 1); 
        Uri creationUri = asSyncAdapter(Calendars.CONTENT_URI, account.name, account.type); 
        Uri calendarData = mContext.getContentResolver().insert(creationUri, v); 
        long id = Long.parseLong(calendarData.getLastPathSegment()); 
       } 
    private Uri asSyncAdapter(Uri uri, String account, String accountType) 
        { 
        return uri.buildUpon().appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true").appendQueryParameter                  (Calendars.ACCOUNT_NAME,account) .appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType) .build(); 
        } 
        ContentValues values = new ContentValues();
        String eventTitle = eventsubject[i]; 
        values.put(Events.DTSTART, startMillis); 
        values.put(Events.HAS_ALARM, 1); 
        values.put(Events.DTEND, endMillis); 
        values.put(Events.EVENT_COLOR, Color.BLUE); 
        values.put(Events.TITLE, eventTitle); 
        values.put(Events.DESCRIPTION, ""); 
        values.put(Events.CALENDAR_ID, calendarId1); 
        values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault() .getID()); 
        Uri uri = cr.insert(Events.CONTENT_URI, values); 
        long eventID = Long.parseLong(uri.getLastPathSegment()); 
        ContentValues reminders = new ContentValues(); 
        reminders.put(Reminders.EVENT_ID, eventID); 
        reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT); 
        reminders.put(Reminders.MINUTES, 2); 
        Uri uri2 = cr.insert(Reminders.CONTENT_URI, reminders); 
        Log.e("Reminder", "addreminder" + uri2);  

这篇关于自定义日历同步添加帐户的android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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