在Android上使用GData API的最佳选择?

时间:2009-02-07 18:10:08

标签: android gdata-api

在Android应用程序中使用Google数据API的最不痛苦和最有效的方法是什么?

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

较旧的选项,com.google.wireless.gdata包似乎来自SDK removed。它仍然是GIT存储库中的available

在我用任何一种方法投入太多时间之前,我想知道哪种方法支持得最好,最不痛苦。

5 个答案:

答案 0 :(得分:33)

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

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

首先,请查看Android Developer's Guide。此外,请查看Android sample for Picasa Web Albums Data API,其中演示了创建/更新/删除相册和上传图片的功能。

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

请尝试使用Google SpreadSheet API for Android

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

干杯, Prasanta

答案 3 :(得分:2)

以下是使用Google Eclipse项目处理Google Docs api的一些步骤。

剧透:它在SAX例外

上打破了(对我而言)

1

Get the GData Java library(通过the language guide

2

Android Javamail port

获取3个罐子

3

在lib文件夹中添加以下jar,使用上下文菜单将它们添加到路径中(Build path-&gt; Add)

  • activation.jar(javamail)
  • additionnal.jar(javamail)
  • mail.jar(javamail)
  • GDATA-客户1.0.jar
  • GDATA客户端 - 间 - 1.0.jar
  • gdata-core-1.0.jar
  • GDATA-文档-3.0.jar
  • GDATA-文档 - 间 - 3.0.jar
  • GDATA-GTT-2.0.jar
  • GDATA-GTT-元2.0.jar
  • GDATA媒体-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。

答案 4 :(得分:1)

我使用了这个API

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