对于我需要开发的应用,我需要能够使用SyncAdapter同步gmail和facebook数据。我希望与本地的facebook和gmail应用程序(如果可用)同步,而不是远程服务器。与本地应用程序同步意味着更少的电池使用量,更少的网络使用率,更快的同步等。当然,如果需要,我将设置正确的权限。
我的问题:
如果这些都不可用,我想我自己需要获取数据,因此与此问题无关。
答案 0 :(得分:3)
我不能代表Facebook,但GMail应用程序不允许这样做。它曾经以前工作,但他们已经保护它,以便只有谷歌应用程序可以查询电子邮件内容提供商。您可以做的最好的事情是使用labels API获取邮件数量。您可以使用标准Android AccountManager
获取Google服务的身份验证令牌(ClientLogin或OAuth2)。然后,您必须使用它连接到特定API以获取实际数据。
答案 1 :(得分:2)
尽管应用确实支持共享本地数据,但试图避免用户重新输入密码也几乎肯定仍然是不可能的。毕竟,GMail应用程序如何验证您的应用程序是否应该有权读取其所有数据?大概是通过提示您的GMail用户名和密码。仅仅使用相同的设备绝对不意味着完全信任。
使用SyncAdapter并存储示例项目中演示的身份验证令牌,您应该能够限制用户输入一次凭据,但这是您能够做到的最佳状态。
<强>此前:强>
您是否看过SDK附带的SampleSyncAdapter?
These instructions快速概述了如何访问样本。
如果您正在使用Eclipse,那么它们实际上就更容易建议。获取示例项目:
File
&gt; New
&gt; Other...
Android
&gt; Android Sample Project
示例项目是如何使用SyncAdapters的一个很好的例子,应该很容易适应与GMail,Facebook等的连接。