43

在 Android 应用程序中使用 Google 数据 API 最不痛苦且最节省空间的方法是什么?

经过几次快速搜索后,似乎 Google 代码上有一个android-gdata项目,这似乎是一个作者的作品。我没有找到任何文档,甚至不知道它是否已经准备好生产。

较旧的选项 com.google.wireless.gdata 包似乎已从SDK 中删除。它仍然在 GIT 存储库中可用。

在我在这两种方法上投入太多时间之前,我想知道哪种方法得到最好的支持和最不痛苦。

4

5 回答 5

32

请查看支持 Android 的Google API Client Library for Java

它还支持新的GData技术,例如最近宣布的部分响应/更新和JSON-C,这两者都可以显着提高 Android 的效率。

首先,请查看Android 开发人员指南。另外,请查看Picasa 网络相册数据 API 的 Android 示例,该示例演示了创建/更新/删除相册和上传图片的能力。

全面披露:我是google-api-java-client项目的所有者。

于 2010-04-13T12:50:40.710 回答
5

我还查看了 google-code 项目和 git repo。由于必需项目中出现的明显包袱,我避开了 google-code 项目。我最终根据需要创建了自定义实现以适应标准 java API。您可以在android-developers group中找到我的解决方案的粗略描述。它是 4 个简短、易于测试的课程

于 2009-02-15T01:52:51.163 回答
3

请尝试适用于 Android 的Google SpreadSheet API

我在谷歌代码上维护这个项目,所以如果你遇到任何问题,请告诉我。

干杯,普拉桑塔

于 2010-12-15T08:12:21.313 回答
2

以下是让 Google Docs api 与 Android Eclipse 项目一起工作的一些步骤。

剧透:它在 SAX 异常上中断(对我来说)

1

获取 GData Java 库(通过语言指南

2

Android Javamail 端口获取 3 个 jars

3

在您的 lib 文件夹中添加以下 jar,使用上下文菜单将它们添加到路径(构建路径->添加)

  • 激活.jar (javamail)
  • addnal.jar (javamail)
  • 邮件.jar (javamail)
  • gdata-client-1.0.jar
  • gdata-client-meta-1.0.jar
  • gdata-core-1.0.jar
  • gdata-docs-3.0.jar
  • gdata-docs-meta-3.0.jar
  • gdata-gtt-2.0.jar
  • gdata-gtt-meta-2.0.jar
  • gdata-media-1.0.jar
  • google-collect-1.0-rc1.jar(来自 gdata 文件夹的 deps 文件夹)
  • jsr305.jar3. (来自 gdata 文件夹的 deps 文件夹)

4

不要忘记在您的 AndroidManifest.xml 中添加 INTERNET 权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

5

尝试一些示例代码:

DocsService client = new DocsService("myappname");
try
{
    client.setUserCredentials("username", "password");

    URL feedUri = new URL("https://docs.google.com/feeds/default/private/full/");
    DocumentListFeed feed = client.getFeed(feedUri, DocumentListFeed.class);

    TextView textView = (TextView) findViewById(R.id.textview);

    String text = ""; 
    for (DocumentListEntry entry : feed.getEntries())
    {
        text += entry.getTitle().getPlainText() + "\r\n";
    }

    textView.setText(text);
}
catch (AuthenticationException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}
catch (MalformedURLException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}
catch (IOException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}
catch (ServiceException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

6

2 小时后接受失败,并带有来自 logcat 的 SaxException:

WARN/XmlParser(1599): javax.xml.parsers.ParserConfigurationException:
org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/external-parameter-entities
...
在 com.google.gdata。 wireformats.input.AtomDataParser.parse(AtomDataParser.java:68)

最后一步会导致 ServiceException。

于 2010-09-28T19:26:55.797 回答
1

我使用了这个API

我尝试将其转换为 a .jar,但遇到了问题。我发现很容易将项目标记为库项目,然后在我的主项目中使用它。

于 2012-03-31T15:34:56.190 回答