Android打开日历账号管理,Android:系统日历添加默认账户

@@ -190,9 +191,47 @@ public class AllInOneActivity extends AbstractCalendarActivity implementsEventH

}

};+ //XBH add patch start :

+ private voidsetDefaultAccount(ContentResolver cr) {+ Log.d(TAG, "Set default account");+ TimeZone timeZone =TimeZone.getDefault();+ ContentValues value = newContentValues();+ value.put(Calendars.NAME, "XBH");+

+ value.put(Calendars.ACCOUNT_NAME, "xbhgmailaddress@gmail.com");+ value.put(Calendars.ACCOUNT_TYPE, "com.android.exchange");+ value.put(Calendars.CALENDAR_DISPLAY_NAME, "XBH");+ 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, "xbhgmailaddress@gmail.com");+ 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, "xbhgmailaddress@gmail.com")+ .appendQueryParameter(Calendars.ACCOUNT_TYPE, "com.android.exchange")+.build();+

+cr.insert(calendarUri, value);+}+ //XBH add patch end.

+

private class QueryHandler extendsAsyncQueryHandler {publicQueryHandler(ContentResolver cr) {super(cr);+ //XBH add patch start :

+ Cursor userCursor = cr.query(Calendars.CONTENT_URI, null, null, null, null);+ if(userCursor != null && userCursor.getCount() == 0) {+ //setDefaultAccount(cr);

+ Log.d(TAG, "userCursor.getCount() == 0");+

+}+ Log.d(TAG, "userCursor.getCount()" +userCursor.getCount());+ //XBH add patch end.

}

\packages\providers\CalendarProvider\src\com\android\providers\calendar\CalendarDatabaseHelper.java

private voidinsertAccount(SQLiteDatabase db) {

Log.d(TAG,"insertAccount");

TimeZone timeZone=TimeZone.getDefault();

ContentValues value= newContentValues();

value.put(Calendars.NAME,"XBH11");

value.put(Calendars.ACCOUNT_NAME,"xbhgmailaddress@gmail.com");

Log.i(TAG,"Calendars.ACCOUNT_NAME = " +Calendars.ACCOUNT_NAME);

value.put(Calendars.ACCOUNT_TYPE,"com.android.xbh.tv");

Log.i(TAG,"Calendars.ACCOUNT_TYPE = " +Calendars.ACCOUNT_TYPE);

value.put(Calendars.CALENDAR_DISPLAY_NAME,"XBH");

Log.i(TAG,"Calendars.CALENDAR_DISPLAY_NAME = " +Calendars.CALENDAR_DISPLAY_NAME);

value.put(Calendars.VISIBLE,1);

Log.i(TAG,"Calendars.VISIBLE = " +Calendars.VISIBLE);

value.put(Calendars.CALENDAR_COLOR,-9206951);

Log.i(TAG,"Calendars.CALENDAR_COLOR = " +Calendars.CALENDAR_COLOR);

value.put(Calendars.CALENDAR_ACCESS_LEVEL, Calendars.CAL_ACCESS_OWNER);

Log.i(TAG,"Calendars.CALENDAR_ACCESS_LEVEL = " +Calendars.CALENDAR_ACCESS_LEVEL);

value.put(Calendars.SYNC_EVENTS,1);

Log.i(TAG,"Calendars.SYNC_EVENTS = " +Calendars.SYNC_EVENTS);

value.put(Calendars.CALENDAR_TIME_ZONE, timeZone.getID());

Log.i(TAG,"timeZone.getID() = " +timeZone.getID());

value.put(Calendars.OWNER_ACCOUNT,"xbhgmailaddress@gmail.com");

Log.i(TAG,"Calendars.OWNER_ACCOUNT = " +Calendars.OWNER_ACCOUNT);

value.put(Calendars.CAN_ORGANIZER_RESPOND,0);

Log.i(TAG,"Calendars.CAN_ORGANIZER_RESPOND = " +Calendars.CAN_ORGANIZER_RESPOND);

db.insert("Calendars", null, value);

}

或者

//begin : added by xxx for calendar demand

private voidupdateOrInsert(SQLiteDatabase db, String table){//check this value exsist or not.

String account_name = "Phone";

String account_type= "com.android.huawei.phone";

String calendar_displayName= "Phone";

Integer calendar_color= -12011288;

Integer calendar_access_level= 700;

Integer sync_events= 1;

String calendar_timeZone= "Asia/shanghai";

String ownerAccount= "Phone";

String[] columns= new String[]{"account_name","account_type"," calendar_displayName"};

String selection= " account_name=? and account_type=? and calendar_displayName=? ";

String[] selectionArgs= newString[]{account_name,account_type,calendar_displayName};boolean alreadyExisted = false;//Cursor cursor = db.query(table, columns, selection, selectionArgs, null, null, null);

Cursor cursor = db.query(table, columns, selection, selectionArgs, null, null, null);

alreadyExisted= (null != cursor) && (cursor.getCount() > 0);/** an update statement like this:

* UPDATE secure SET value='com.android.inputmethod.latin/.LatinIME' where name='default_input_method'

* an insert statement like this:

* INSERT INTO secure(name,value) values('default_input_method','com.android.inputmethod.latin/.LatinIME')*/String stmt_update= "UPDATE "+table+" SET account_name='" + account_name + "'"+"calendar_displayName='"+ calendar_displayName +"'" + "where account_type='" + account_type + "'";

String stmt_insert= "INSERT INTO "+table+"(account_name,account_type,calendar_displayName,calendar_color,calendar_access_level,sync_events,calendar_timeZone,ownerAccount) values('" +account_name+ "','" + account_type + "','"+calendar_displayName + "','" + calendar_color + "','" + calendar_access_level + "','" + sync_events + "','" + calendar_timeZone + "','" + ownerAccount+ "')";

String stmt= alreadyExisted ?stmt_update : stmt_insert;

db.execSQL(stmt);

}//end : added by xxx for calendar demand

private voidbootstrapDB(SQLiteDatabase db) {

Log.i(TAG,"Bootstrapping database");

mSyncState.createDatabase(db);

createColorsTable(db);

createCalendarsTable(db);

updateOrInsert(db,"Calendars");

......

}

\packages\providers\CalendarProvider\src\com\android\providers\calendar\CalendarProvider2.java

if ((!validAccounts.contains(currAccount)) &&(!c.getString(1).equalsIgnoreCase("com.android.xbh.tv"))) {

accountsToDelete.add(currAccount);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值