android 4.0 Calendar 添加默认账户

参考网站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);	
		
	}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值