Лучший вариант для использования API GData на Android? - PullRequest
42 голосов
/ 07 февраля 2009

Какой наименее болезненный и наиболее эффективный способ использования API данных Google в приложении Android?

После нескольких быстрых поисков кажется, что в Google Code есть проект android-gdata , который, похоже, принадлежит одному автору. Я не нашел никакой документации для него и даже не знаю, готов ли он к производству.

Более старая опция, пакет com.google.wireless.gdata, похоже, был удален из SDK. Это все еще доступно в GIT-хранилище.

Прежде чем уделять слишком много времени тому или иному подходу, я хотел бы знать, какой из них лучше всего поддерживается и наименее болезненный.

Ответы [ 5 ]

33 голосов
/ 13 апреля 2010

Пожалуйста, ознакомьтесь с клиентской библиотекой API Google для Java, которая поддерживает Android

Он также поддерживает новые технологии GData , такие как недавно анонсированный частичный ответ / обновление и JSON-C , обе из которых могут значительно повысить эффективность на Android.

Для начала взгляните на Руководство разработчика Android . Также ознакомьтесь с примером Android для API данных веб-альбомов Picasa , который демонстрирует возможность создания / обновления / удаления фотоальбома и загрузки изображения.

Полное раскрытие: я владелец проекта google-api-java-client .

5 голосов
/ 15 февраля 2009

Я также посмотрел на проект google-code и репозиторий git. Я отказался от проекта google-code из-за очевидного багажа, который появился в необходимых проектах. Я закончил тем, что создал пользовательские реализации по мере необходимости для адаптации стандартного API Java. Примерное описание моего решения вы можете найти в группе разработчиков Android . Это 4 коротких, легко проверяемых класса

3 голосов
/ 15 декабря 2010

Пожалуйста, попробуйте Google SpreadSheet API для Android

Я поддерживаю этот проект в Google Code, поэтому, если у вас возникнут какие-либо проблемы, пожалуйста, дайте мне знать.

Ура, Prasanta

2 голосов
/ 28 сентября 2010

Вот несколько шагов, чтобы заставить API Google Docs работать с проектом Android Eclipse.

Спойлер: он ломается (для меня) на SAX исключении

1

Получить библиотеку Java GData (через руководство по языку )

2

Получите 3 баночки с порта Java для Android

3

Добавьте следующие jar-файлы в папку lib, добавьте их в путь с помощью контекстного меню (Build path-> Add)

  • activ.jar (javamail)
  • добавочный.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 (из папки deps папки gdata)
  • jsr305.jar3. (из папки deps папки gdata)

4

Не забудьте добавить разрешение ИНТЕРНЕТ в свой AndroidManifest.xml:

<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 часа с SaxException от logcat:

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.

1 голос
/ 31 марта 2012

Я использовал это API

Я пытался преобразовать его в .jar, но возникли проблемы. Мне было легко пометить проект как проект библиотеки, а затем использовать его в моем основном проекте.

...