1. Email添加自动回复功能需要注意事项

  1. Email可能存在多个账户, 因此自动回复功能应该添加在账户设置里面, 自动回复针对一个账户单独处理
  2. 在Email账户设置里面, 开启自动回复功能的时, 需要保存设置的时间(时间戳, 是否需要考虑时区等影响), 账户ID, 自动回复的内容(自动回复的内容, 由用户编辑, 内置默认回复), 开启状态
  3. 自动回复功能的设置数据, 通过Email账户的EmailAddress获取

2. Email自动回复功能注意事项

  1. 监听Email数据库中MESSAGE表的数据(邮件)变化
  2. 判断邮件的mailboxKey的类型是否是INBOX
  3. 判断邮件的accountKey是否是开启自动回复功能的账户
  4. 判断邮件的timeStamp是否晚于开启自动回复功能的时间
  5. 判断该邮件的接收者是否已经自动回复
    1. 通过 subject 判断是否有 Re:subject 数据. 如果有则说明已经自动回复, 如果没有则说明没有自动回复. 该种方式不可靠
    2. 在MESSAGE添加replyMessageId字段, INBOX类型的邮件存储自动回复邮件的ID, 自动回复邮件存储被自动回复邮件的ID. 工作量比较大, 改动较多
  6. 如果INBOX数据有抄送(cc), 或者暗抄送(bcc), 自动回复数据是否添加?
  7. 自动回复数据是否携带引用(quote), 如果接收的邮件有附件怎么处理?
  8. 在删除Email账户的时候需要删除保存的自动回复相关信息

3. Email自动回复功能添加到什么地方?

  1. EmailProvider的insert方法. 方便简单
  2. 同步数据成功, 执行插入MESSAGE表的位置, 需要监听数据库发生改变. 目前没有找到该位置在什么地方, 牵涉到Android系统的同步机制

4. Email自动回复功能采用什么方式实现?

  1. 硬编码到EmailProvider的insert方法处. 不可取
  2. 在EmailProvider的insert方法处, 采用IntentService

Android系统修改之Email自动回复功能分析的更多相关文章

  1. Android系统修改硬件设备访问权限

    Android系统修改硬件设备访问权限 在硬件抽象层模块文件(so)文件中,提供的函数调用open函数来打开设备文件,比如/dev/gpio,如果不修改设备文件/dev/gpio的访问权限,那么应用程 ...

  2. Android系统修改之Notification布局修改(一)

    源码基于Android4.4 相关布局文件的位置: frameworks/base/core/res目录下: 1. notification_template_base.xml 2. notifica ...

  3. Android系统修改之展讯平台的Mms不能发送西班牙特殊字符ú的问题

    在测试中, 发现在发送短信的时候特殊字符ú不能发送, 但是输入框可以输入并正常显示, 查看代码之后, 发现是展讯在字符转换的时候出现的问题 frameworks/base/telephony/java ...

  4. Android系统修改之葡萄牙沃达丰One Net服务问题处理

    客户反馈的葡萄牙沃达丰的OneNet服务问题 Vodafone Portugal have a service (One Net) for enterprise customers that used ...

  5. 修改Android系统属性SystemProperties.set("sys.powerctl", "shutdown")关机分析

    简介: 从之前的博文中我们提到过,关机流程中最后是通过修改Android属性进行关机操作(SystemProperties.java通过JNI调用访问系统属性),当然我们也可以通过adb命令修改And ...

  6. 修改Android系统字号(二)

    /*********************************************************************** * 修改Android系统字号(二) * 说明: * ...

  7. 修改Android系统字号(一)

    /*********************************************************************** * 修改Android系统字号(一) * 说明: * ...

  8. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  9. 深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制(瘋耔修改篇一)

    首先非常感谢原文作者为我们提供的知识库,因为有你们的贡献,我们的开发难度更显简单 原文 :   http://blog.csdn.net/mr_raptor/article/details/30113 ...

随机推荐

  1. 深入学习Java对象创建的过程:类的初始化与实例化

    在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完 ...

  2. HBase 系列(二)—— HBase 系统架构及数据结构

    一.基本概念 一个典型的 Hbase Table 表如下: 1.1 Row Key (行键) Row Key 是用来检索记录的主键.想要访问 HBase Table 中的数据,只有以下三种方式: 通过 ...

  3. silverlight中递归构造无限级树treeview+checkbox

    两个实体,其实一个实体也能构造出来,我这里是为了增加一个 checkbox //第一个实体 public class person { public int no { get; set; } publ ...

  4. Apache和Apache Tomcat

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  5. Gym 101510C

    题意略. 思路: 由于xi的选取是任意的,所以我们不用去理会题目中的xi数列条件.主要是把关注点放在长度为L的线段覆盖至少k个整数这个条件上. 像这种取到最小的合法解的问题,我们应该要想到使用二分法来 ...

  6. Go 面试每天一篇(第 1 天)

    下面这段代码输出的内容 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { ...

  7. 百度地图Canvas实现十万CAD数据秒级加载

    背景 前段时间工作室接到一个与地图相关的项目,我作为项目组成员主要负责地图方面的设计和开发.由于地图部分主要涉及的是前端页面的显示,作为一名Java后端的小白,第一次写了这么多HTML和JavaScr ...

  8. html基础——下拉式菜单

    一个网站能否让用户容易使用该网站往往是由菜单栏体现出来,因为它为网页的大多数页面提供功能入口.一个轻轻的点击以后,即可显示出菜单项,将网站的大部分页面和功能显示出来让用户清楚了解从而用户节约一定的时间 ...

  9. redis之mq实现发布订阅模式

    示例代码-github 概述 Redis不仅可作为缓存服务器,还可用作消息队列,本示例演示如何使用redis实现发布/订阅消息队列. 在Redis中,发布者没有将消息发送给特定订阅者的程序.相反,发布 ...

  10. Git 忽略某些文件提交

    在项目中有些配置文件不需要提交,但是有同学在后面开发中发现在.igonore文件中无论如何都无法忽略某些文件的提交.原因在这里: 已经维护起来的文件,即使加上了gitignore,也无济于事.---- ...