【问题标题】:Gmail Sync on Android phoneAndroid 手机上的 Gmail 同步
【发布时间】:2010-03-25 23:01:56
【问题描述】:

Android 具有 Gmail 推送功能,即新邮件到达邮箱时无需检查或刷新邮箱。

据我了解,同步过程如下:
1) 用户开启同步
2) 将有一条警报消息,并且此设备的 Gmail DB 中的同步标志将为 True
3) 当有新邮件到达 Gmail 服务器时,它会检查设备是否同步值,如果是 True 则发送邮件

好的,这里,我不太明白它是如何工作的,
对于 WiFi 和手机信号连接,手机是否打开了 TCP 套接字继续监听 Gmail 服务器,或者当有新电子邮件到达服务器并向手机发送 SMS 警报时,手机将打开数据通道获取电子邮件?两种连接方式有不同的做法吗?

第二个问题是哪种方法是优先的?
假设你正在接收数据(电子邮件),突然手机连接到无线网络,是否会关闭数据套接字然后重新打开 WiFi 套接字?运营商数据通道和WiFi翻转时的情况是什么?

我也下载了源代码,有人知道我应该研究哪一部分来解决我的问题吗?我在文件夹“package”中找到了一个名为“email”的文件夹,我应该查看它的代码吗?

我知道我在这里问了很多问题,如果您知道其中任何一个的答案,我将不胜感激,非常感谢!

【问题讨论】:

  • 请记住,Gmail 客户端不是开源的。它不在您下载的代码中。

标签: android gmail


【解决方案1】:

这在技术上不是 Android 的一部分,而是在 Android 上运行的 Google 专有应用程序套件。它也没有在 Gmail 中真正实现——谷歌应用程序共同与他们共享的谷歌服务器(基于 gtalk 数据协议,但主要是出于历史原因而存在)建立推送数据连接。当有新邮件可用时,推送连接用于向设备发送“提示”,说明邮件发生了变化,然后在设备上将其分派到 gmail 应用程序,该应用程序打开与其服务器的新套接字连接将本地状态与发生的任何更改同步。同样的机制也用于联系人和日历同步,以及诸如从市场上发起下载之类的事情。

它的工作方式是一个实现细节,但目前它是通过保持打开的套接字连接来完成的。在无法进行语音和数据传输的网络上,发生语音呼叫时连接会断开。在wifi和cell之间切换时,连接断开并重新启动。

请注意,以这种方式进行推送通知在设备上会占用大量资源,因此经过精心设计,允许一个此类实例支持所有 Google 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多