web-dev-qa-db-ja.com

AndroidでGData APIを使用するための最良のオプション?

AndroidアプリケーションでGoogle Data APIを使用するための最も苦痛がなく、最もサイズ効率の良い方法は何ですか?

数回の簡単な検索の後、Google Codeに Android-gdata プロジェクトがあるようですが、これは1人の著者の作品のようです。そのためのドキュメントは見つかりませんでしたし、まだ製品の準備ができているかどうかもわかりません。

古いオプションであるcom.google.wireless.gdataパッケージは、SDKから 削除 されているようです。それはまだGITリポジトリに available です。

どちらのアプローチでも多くの時間を費やす前に、どちらが最もサポートされており、最も痛みが少ないかを知りたいと思います。

43
nyenyec

Google APIクライアントライブラリ をご覧くださいJava Androidをサポートしています)

また、最近発表された部分応答/更新やJSON-Cなどの新しいGDataテクノロジーもサポートしています。 Androidでの効率の向上。

まず、 Androidデベロッパーガイド をご覧ください。また、 PicasaウェブアルバムデータAPIのAndroidサンプル も参照してください。これは、フォトアルバムの作成、更新、削除、および写真のアップロード機能を示しています。

完全な開示:私は google-api-Java-client プロジェクトの所有者です。

33
Yaniv Inbar

また、google-codeプロジェクトとgitリポジトリも調べました。必要なプロジェクトで手に入れた明らかな手荷物のため、私はgoogle-codeプロジェクトから離れました。標準Java APIを適応させるために必要に応じてカスタム実装を作成しました。私のソリューションの大まかな説明は Android-developersグループ 。4つの短い、簡単にテストできるクラス

5
James A Wilson

お試しください Google SpreadSheet API for Android

私はこのプロジェクトをGoogle Codeで維持しているので、問題が発生した場合はお知らせください。

乾杯、プラサンタ

3
user542954

ここでは、Android EclipseプロジェクトでGoogle Docs APIを機能させるためのいくつかの手順を示します。

スポイラー:SAX例外で(私にとって)壊れる

1

GDataを取得Javaライブラリ言語ガイド を介して)

2

Android Javamailポート から3つのjarを取得します

以下のjarをlibフォルダーに追加し、コンテキストメニュー(ビルドパス->追加)を使用してパスに追加します。

  • activation.jar(javamail)
  • addnal.jar(javamail)
  • mail.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

LogcatのSaxExceptionを使用して、2時間後に敗北を受け入れます。

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

この最後の手順により、ServiceExceptionが発生します。

2
Chris S

私はこれを使用しました [〜#〜] api [〜#〜]

.jarに変換してみましたが、問題がありました。プロジェクトをライブラリプロジェクトとしてマークし、メインプロジェクトで使用するのは簡単でした。

1
Clive Jefferies