android 4.0 Calendar 添加默认账户

本文介绍如何在Android应用中创建默认日历账户及日历,解决添加活动时因缺少账户和日历导致的问题。通过查询现有账户并初始化新日历的方法实现。

参考网站http://stackoverflow.com/questions/13236573/content-resolver-add-new-non-local-calendar-calendar-deleted-when-process-en

由于添加活动时,提示“需要一个账户和显示一个日历”,则需要添加一个默认账户。在添加活动,查询是否存在账户之前添加一个账户。

Cursor c =activity.getContentResolver().query(Calendars.CONTENT_URI, null, Calendars._ID, null, null);
        Log.i(TAG, "    ============== COUNT : " + c.getCount());
        if(c.getCount() == 0){//判断数据库中是否存在日历
        	Log.i(TAG, "======== ADD Calendars");
			initCalendars(activity);
		}

private void initCalendars(Activity activity) {

    		TimeZone timeZone = TimeZone.getDefault();
		ContentValues value = new ContentValues();

		value.put(Calendars.OWNER_ACCOUNT,"xxx");
		value.put(Calendars.NAME,"xxx");
		
		value.put(Calendars.ACCOUNT_NAME,"xxx");
		value.put(Calendars.ACCOUNT_TYPE,"com.android.exchange"); 
		value.put(Calendars.CALENDAR_DISPLAY_NAME,"xxx");
		value.put(Calendars.VISIBLE, 1);
		value.put(Calendars.CALENDAR_COLOR,-9206951);
		value.put(Calendars.CALENDAR_ACCESS_LEVEL,Calendars.CAL_ACCESS_OWNER);
		value.put(Calendars.SYNC_EVENTS,1);	
		value.put(Calendars.CALENDAR_TIME_ZONE,timeZone.getID());
		value.put(Calendars.OWNER_ACCOUNT,"xxx");
		value.put(Calendars.CAN_ORGANIZER_RESPOND,0);
		
		Uri calendarUri = Calendars.CONTENT_URI;
        calendarUri = calendarUri.buildUpon()
            .appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true" )
            .appendQueryParameter(Calendars.ACCOUNT_NAME, "xxx" )
            .appendQueryParameter(Calendars.ACCOUNT_TYPE, "com.android.exchange" ) //CalendarContract.ACCOUNT_TYPE_LOCAL )
            .build();
		
		activity.getContentResolver().insert(calendarUri, value);	
		
	}


评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值