Здравствуйте!
Столкнулся с такой проблемой: мне необходимо из Android приложения взаимодействовать с Google Calendar (именно веб-версия). Так как необходимо использовать веб версию, использование Content Provider и Intent'ов к приложению Календарь отпадает.
Пробовал использовать google-api-client-library, но к великому сожалению, ни пример, предоставленный в документации, ни все мои попытки не смогли заставить этого зверька заработать. Ниже приведен код авторизации и попытки получения данных:
// Объявляем объекты для взаимодействия с Google Calendar
final HttpTransport transport = AndroidHttp.newCompatibleTransport();
final JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
// Объявляем объект для хранения учетной записи пользователя (oAuth 2.0)
GoogleAccountCredential credential;
// Объявляем объект клиентской библиотеки для взаимодействия с Google Calendar
com.google.api.services.calendar.Calendar client;
// Подключаем аккаунт Google
credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(CalendarScopes.CALENDAR));
// Получаем настройки, вдруг в приложение заходят не в первый раз
SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
// Подключаем клиент библиотеки
client = new com.google.api.services.calendar.Calendar.Builder(
transport, jsonFactory, credential).setApplicationName("IlyaLim-TestApp/1.0")
.build();
Получение списка календарей (в AsyncTask):
CalendarList feed = client.calendarList().list().setFields(CalendarInfo.FEED_FIELDS).execute();
model.reset(feed.getItems());
При выполнении этого кусочка в AsyncTask постоянно выбрасывает IOException без описания ошибки.
Я уже перепробовал все, что только знаю и умею и нашел в интернете. Отсюда собственно и вопрос:
Есть ли у кого-либо информация или ссылка на полный, подробный и (!) рабочий пример/туториал использования google-api-client-android или пример работы с Google API напрямую (REST) на Java?
Всем заранее большое и человеческое спасибо!