Вот несколько шагов, чтобы заставить 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.