产品经理要求添加日历事件,并给此事件增加日历闹钟提醒功能,MIUI系统闹钟提醒无法自动设置,而oppo/vivo中日历中也没有闹钟提醒的功能。

解决思路

1)查找数据库表结构是否存在提醒字段

Android日历相关数据库位于/data/data/com.android.providers.calendar/databases,日历事件存储数据库为Calendar.db中的Events表,提醒数据存储为Reminders表中。我们可以通过如下代码查看表结构

sqlite3 calendar.db
.tables

在Events表中找到一个叫做hasAlarm的字段,值为0或1。把功能添加后发现,有提醒功能,但是不满足产品需求,因为它在MIUI上只会在屏幕底部弹出对话框,并没有触发闹钟提醒。

2)查看设置成功和未设置成功的数据库区别

小米日历中存在日程提醒设置的功能,到点就可以闹钟提醒。打算看看我的数据和它的数据有什么区别。对比两者发现,除了Calendar.Events表中的mutators存在差异,别的字段都类似,小米日历修改的mutators多了日历的包名。

怀疑小米日历对修改包名进行了限制,尝试手动伪装日历包名进行修改,即插入提醒时把日历包名添加到mutators字段中,结果还是没有成功,怀疑该功能配置项配置在其他表结构中或者文件中。

3)查看Calendar.db的其他表找线索

查找Calendar剩余表发现ExtendedPorperties表中存在差异,value字段存在关于闹钟提示的相关标识。小米日历添加闹钟提醒的事件的value字段为{"need_alarm":true},经修改最终成功实现此功能。

结论

Calendar.db的Event表中存在hasAlarm字段标识闹钟提醒,但是可能存在什么问题导致无法使用,因此华为和OPPO没有实现相关功能。

但是小米通过其他方式进行实现,MIUI控制闹钟提示不是按照传统的EVENT表中的HAS_ALARM字段,而是ExtendedPorperties中的value字段,通过{"need_alarm":true}标识。

因此添加日历提醒功能要同时对Event、Reminders、ExtendedPorperties三者进行操作

Android MIUI日历闹钟提醒功能实现相关推荐

  1. android win10 日历提醒,win10系统怎么设置日历自动提醒功能

    在 1.点击桌面右下角的[日期时间]: 2.接着在弹出的[日历]程序紧贴屏幕右边框打开,在展开的日历中,点击[+]按钮: 2.此外我们还可以通过点击桌面左下角的[开始]按钮,在展开的程序列表中,找到并 ...

  2. android+记事提醒,android记事本备忘录+闹钟提醒

    [实例简介] android 记事本 备忘录 + 闹钟提醒完整代码,可直接运行 [实例截图] [核心代码] notePad └── notePad7 ├── AndroidManifest.xml ├ ...

  3. Java怎么搞安卓日历提醒,Android日历有闹钟提醒功能记事功能等

    [实例简介] 好看的Android日历,里面有闹钟.提醒功能.记事功能等等 [实例截图] [核心代码] Calenda └── Calenda ├── AndroidManifest.xml ├── ...

  4. 安卓调用日历提醒,并实现闹钟提醒功能,在miui上测试通过,日历提醒闹钟设置失败解决(附源码,源码已更新)

    不想看教程的可以直接走这里的后门去下载源码(源码已更新),源码小米手机亲测通过,有问题可以私信我:源码下载https://download.csdn.net/download/Spy003/87418 ...

  5. Android中关于闹钟提醒的解决方案

    效果图 来看分析和讲解之前,先看看效果吧,效果图如下: 设置界面    闹钟提醒界面  AlarmManager 对于AlarmManager里的方法我就不逐一介绍了,如果都介绍讲完估计就天黑了.Al ...

  6. android 日历没有提醒功能,如何在Android 4中无提示地将日历事件添加到默认日历中而无任何提示?...

    小编典典 这是我最终成功的一个工作示例: ContentResolver cr = ctx.getContentResolver(); ContentValues values = new Conte ...

  7. JAVA实现闹钟提醒功能_AlarmManager类的应用(实现闹钟功能)

    1.AlarmManager,顾名思义,就是"提醒",是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Br ...

  8. 基于Bmob云平台的android写日记带提醒功能

    Android日记APP数据保存在bmob云服务器上,主要实现 -提醒:设置提醒时间,每天提醒写日记 -隐私密码:密码保护,不用当心内容被别人看到(其实也并没什么卵用) -备份:将数据备份到云端 -导 ...

  9. android大作业闹钟的功能,定时闹钟课程设计大作业.doc

    定时闹钟课程设计大作业 微型计算机控制 技术大作业 设计题目: 定时闹钟课程设计 院 系:计算机科学与信息工程学院 学生姓名: 曹紫莹 学 号: 201103010036 专业班级: 计算机科学与技术 ...

最新文章

  1. 如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误...
  2. 区块链BaaS云服务(16)天德链TDBC“泰山沙盒系统”
  3. python函数作为参数例题_笨办法学Python 习题 19: 函数和变量
  4. mongodb同时更新一条记录_MongoDB 存储和优化系列一
  5. C++基础学习一(基础之基础)
  6. 前端学习(2035)vue之电商管理系统电商系统之形成折线图
  7. 泛型数组 List c# 1613647847
  8. 如何用python爬取公众号文章搜狗微信搜索_python抓取搜狗微信公众号文章
  9. tomcat源码分析_CVE-2020-9484 tomcat session反序列化漏洞分析
  10. 【问题解决方案】visudo: /etc/sudoers is busy, try again later
  11. 洛谷 P1181数列分段SectionI 【贪心】
  12. 攻防世界web练习5
  13. docke网络之bridge、host、none
  14. ++k与k++区别 和双目运算符结合
  15. 为什么要知己知彼?要有信息?
  16. 怎样破解网页禁用鼠标右键
  17. carla--使用python进行carla交互仿真
  18. 一分钟快速了解边缘计算
  19. java做百度语言识别_java实现百度云文字识别接口代码
  20. 如何部署一台云服务器并且和域名绑定

热门文章

  1. 搭建app需要什么计算机语言,App网站开发需要用到什么编程语言
  2. 聚观早报 | 神舟十四号飞行任务圆满成功;大众ID大面积车机故障
  3. 国防科大计算机学院王学慧,计算机科学与软件工程学院教师赴国防科技大学计算机学院进行教学调研...
  4. 制造业生产管理系统(500强制造企业数字化实践)
  5. word 通过宏选中所有表格
  6. PTA练习题1027 打印沙漏 (20分)
  7. 杰理之设置立体声输出,播左右声道歌曲后DAC没有声音或声音变小【篇】
  8. 2017 淘宝新品破零的8个绝招
  9. 常见Linux发行版本有哪些?
  10. java-net-php-python-springboot舞房管理系统演示录像0512计算机毕业设计程序