在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 calendardb.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更方便。

Android Calendar添加本地账户相关推荐

  1. win10家庭版添加本地账户方法

    1.正常情况下,windows的使用者都习惯于用本地用户及用户组工具来创建新用户,如下图所示,在win10的开始窗口右侧的空白处,输入lusrmgr.msc 打开本地用户管理控制台. 2.在win10 ...

  2. windows10新增本地账户

    添加windows10账户需要先激活windows,然后才能新增账户 命令行net user可以看到当前系统里的所有用户账户 C:\Users\John>net user\\PC158 的用户帐 ...

  3. [Android] 通过GridView仿微信动态添加本地图片

    原文:http://blog.csdn.net/eastmount/article/details/41808179 前面文章讲述的都是"随手拍"中图像处理的操作,此篇文章主要讲述 ...

  4. android 点动态显示图片,Android用RecyclerView实现动态添加本地图片

    本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下: 简单介绍一下用法: 1.跳转到图片选择页面: Intent intent = new Intent(Pa ...

  5. w10系统服务器如何创建新用户,关于Win10怎么给本地账户添加管理员权限的讲解...

    不经意间我们又来到了windows系统文章的学习,快乐是无处不在的 而分享快乐不仅仅是让自己快乐 也让周围的人都快乐 因为分享也是一种快乐,下面就跟大家分享一下我们的文章,我们的文章也许不起眼,但是想 ...

  6. 【安卓】[Android]添加google账户 - 您的用户名和密码不匹配,请重试

    之前一直用的精简的rom,google的服务都精简掉了,而且以前完整rom的时候也可以添加google账户. 昨天刷机完之后,换了个保留google服务的rom,想添加自己的google账户,结果一直 ...

  7. Windows服务器SYSTEM权限Webshell无法添加3389账户情况突破总结

    转自:http://bbs.blackbap.org/thread-2331-1-1.html 近好多Silic的朋友在Windows下SYSTEM权限的php webshell下添加账户,但是却无法 ...

  8. 计算机用户账户添加,windows添加用户账户

    windows server 2003, "我的电脑"->右键"管理" "本地用户和组"->右键"用户"-& ...

  9. android谷歌补丁日期,在谷歌日历Android中添加开始日期和结束日期之间所有日期的事件...

    在谷歌日历 Android中添加开始日期和结束日期之间所有日期的事件.我希望每3个月剩余一次,直到结束日期. 这是我的功能 public void addEvent1(Context ctx, Str ...

最新文章

  1. 如何使dropship第三方销售是基于发货数量,而不是基于LIV发票校验的数量
  2. transforms函数查询
  3. C++ 中重载 + 操作符的正确方法
  4. 使用ArcGIS Engine来实现地图的点击查询并闪烁
  5. [Unity脚本运行时更新]C#7.2新特性
  6. iOS笔记(一)GCD多线程:信号量和条件锁
  7. 【Linux】解决用vi修改文件,保存文件时,提示“readonly option is set”
  8. stm32的HAL库uart的注意点
  9. python pandas读取txt文件_Pandas 读取txt
  10. 2022年java学什么?java怎么学?
  11. MySQL 性别为什么不适合建立索引-值重复率高的字段不适合建索引【转载】
  12. 【算法设计与分析】(6)算24点问题(回溯法)
  13. Debian参考手册读书摘要
  14. java正则表达式过滤特殊字符_使用Java正则表达式过滤特殊字符
  15. Springboot宠物医院系统
  16. IOS停机卡免流线路下载更新
  17. 快速搞懂Vue里面components和template
  18. 导数求函数最大值和最小值
  19. 3601-lpk.dll劫持病毒分析
  20. 关于protel99se建自己的库

热门文章

  1. 【python文件读取】加密数据的读取
  2. python俄罗斯方块的消除算法_1.1.3python tkinter实现俄罗斯方块基础版-生成、移动、固定、消除...
  3. Hadoop 之Mong DB 之CentOS 6 使用 yum 安装MongoDB及服务器端配置
  4. 此nvidia驱动程序与此windows版本不兼容,此图形的驱动程序无法找到兼容的驱动硬件
  5. python 实现MR
  6. ISO/IEC14443
  7. 做自适应网站专业乐云seo_网站建设技术很 棒乐云seo:SEO技术这碗青春饭,跪
  8. 基于PT8.2网关的二氧化碳监测及联动控制
  9. NXP JN5169 波特率配置方案
  10. 电路级静电防护设计技巧与ESD防护方法