Android Calendar添加本地账户
来源:互联网 发布:3g模型 淘宝 编辑:程序博客网 时间:2024/04/30 13:56
在Android原生代码中,日历App如要添加活动,需要先添加账户,不方便用户的使用。反编译某某系统的CalendarProvider.apk
,从中提取了添加本地账户的代码,在此共享。
主要修改了/packages/providers/CalendarProvider/
下的CalendarDatabaseHelper.java
文件,其中包括了日历数据库的创建等操作。
// 系统创建日历数据库表结构的函数private void createCalendarsTable(SQLiteDatabase db) { db.execSQL(/* 创建 Tables.CALENDARS 表 */); // 添加本地日历账户 insertLocalAccount(db);/* 创建表成功后,添加本地账户到数据库 */ // 创建活动被删除时的触发器 // Trigger to remove a calendar's events when we delete the calendar db.execSQL("CREATE TRIGGER calendar_cleanup DELETE ON " + Tables.CALENDARS + " " + "BEGIN " + CALENDAR_CLEANUP_TRIGGER_SQL + "END");}private void insertLocalAccount(SQLiteDatabase db) { // 添加本地日历账户 insertAccount(db, "account_name_local", "LOCAL", mContext.getResources().getString(R.string.calendar_displayname_local), 700, mContext.getResources().getString(R.string.owner_account_local), mContext.getResources().getColor(R.color.calendar_local_color), 5); // 添加生日提醒账户 这个需要联系人App作同步修改,不需要的可以不加入 insertAccount(db, "account_name_local", "LOCAL", mContext.getResources().getString(R.string.calendar_displayname_birthday), 300, mContext.getResources().getString(R.string.owner_account_local), mContext.getResources().getColor(R.color.calendar_local_birthday), 0);}private void insertAccount(SQLiteDatabase db, String accountName, String accountType, String calendarDisplayName, int calendarAccessLevel, String ownerAccount, int calendarColor, int maxReminders) { ContentValues localContentValues = new ContentValues(); localContentValues.put("account_name", accountName);// 账户名称 localContentValues.put("account_type", accountType);// 账户类型 localContentValues.put("calendar_displayName", calendarDisplayName);// 显示的账户名称 localContentValues.put("calendar_access_level", Integer.valueOf(calendarAccessLevel));// 访问级别 localContentValues.put("ownerAccount", ownerAccount);// 账户拥有者 localContentValues.put("calendar_color", Integer.valueOf(calendarColor));// 账户区别颜色 localContentValues.put("sync_events", Integer.valueOf(1));// 是否同步 localContentValues.put("maxReminders", Integer.valueOf(maxReminders));// 最多设置的提醒器数量 db.insert("Calendars", null, localContentValues);}
关于谷歌的账户和同步,有很多需要学习的,与其费劲的自己写日历、联系人的同步,不如学习和使用谷歌提供的账户和SyncAdapter更方便。
0 0
- Android Calendar添加本地账户
- android 4.0 Calendar 添加默认账户
- android 日历本地账户
- Android 添加Calendar 事件。问题
- Android如何在账户设置中添加App的账户
- Android 4.2(JB2)加入多账户后input&language以及Calendar的变化总结
- Android Studio 添加本地Gradle
- 添加calendar.apk到android模拟器的尝试
- android calendar
- Android - Calendar
- android calendar
- Android:Calendar
- android-Calendar
- Win10设置开机账户为本地账户,而不是微软账户
- tomcat manager添加账户
- 为linux添加账户
- 添加slave账户
- 黑客工具-添加账户
- curl上传文件到远程,php版本不同的做法
- android draw9patch工具使用
- NGUI学习笔记 - 通过UIEventlistener和UIbutton来学习NGUI的消息机制
- may 6 s
- ogg同步表
- Android Calendar添加本地账户
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- maven项目启动报错
- Lucas–Kanade
- GridView实现多表头合并,解决表头数据对不齐
- 杭电1010
- 杭电1241 oil deposit
- 杭电1312 red and black
- poj3278 catch that cow