Календарь Google: как получить к нему доступ на Android - PullRequest
2 голосов
/ 28 марта 2011

Каков наилучший способ доступа к календарю Google на Android прямо сейчас?

Я нашел следующие способы:

google-api-java-client - Это всего лишь альфа.Аутентификация, получение календарного списка работает, но обновление календаря падает в образце+ нет документации и плохих образцов кода в любом случае.

взломать взломать обратный инжиниринг - Звучит плохо, также, (вероятно) не перспективно.

Google data api - Насколько я знаю, он не поддерживает / работает на Android.

Есть ли какие-либо альтернативы, которые я пропустил?Есть ли какие-нибудь рабочие примеры там?

Ответы [ 4 ]

2 голосов
/ 28 марта 2011

Я недавно использовал SignPost для этого.Он обрабатывает OAuth, и вы можете использовать его для подписи ваших HTTP-запросов на получение или публикацию данных в ваших календарях.У меня возникли проблемы с настройкой Java API Google для работы с Android, так как я думаю, что он основан на API Java, которые не обязательно присутствуют в Android.

Чтобы сделать свои запросы, вы можете обратиться к этой странице: http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html

0 голосов
/ 25 января 2013

Включите эти файлы jar (Calendar-2.1, client 1.0, core 1.0) из gdata api и включите два внешних файла jar в наше приложение. Эти два файла (guava-11.0.2 и jsr305) доступны в папке deps GData

и этот код для извлечения событий из календаря

Глобально объявите свой календарь ID и пароль

Вы можете связаться со мной на Facebook, используя этот адрес на facebook.com / rajivbawa22 для получения дополнительных руководств

    String userName = "example@gmail.com"; // put here your gmail id 

String userPassword = "12345-example ";// put here your gmail password 

но убедитесь, что у вас есть аккаунт в gmail и в календаре google

попробуй {

        CalendarService myService = new CalendarService("com.demo.calendar");

        myService.setUserCredentials(userName, userPassword);
        // Send the request and print the response
        URL feedUrl = new URL(
                "https://www.google.com/calendar/feeds/"+userName+"/private/full");
        // "https://www.google.com/calendar/feeds/default/owncalendars/full");
        Log.e("", "Calendar1========");
        CalendarFeed resultFeed = myService.getFeed(feedUrl,
                CalendarFeed.class);
        Log.e("", "Calendar2*********" + resultFeed);
        for (int i = 0; i < resultFeed.getEntries().size(); i++) {

            Log.e("", "========" + resultFeed.getEntries().size());

            CalendarEntry entry = resultFeed.getEntries().get(i);

            Log.e("", "**********" + entry.getTitle().getPlainText());

        }
    } catch (Exception e) {

        e.printStackTrace();
    }

посмотрите результат в логах и оставьте свой отзыв

0 голосов
/ 29 марта 2011

Я думаю, что это хорошо известная проблема, но пока не очень ясно. Глядя на все вопросы и ответы, при условии, что у вас есть два варианта:

  • Используйте хаки, на которые вы ссылались в своем ответе (вообще не рекомендуется, потому что, как вы сказали, нет гарантии, что этот трюк сработает в будущем). Некоторые обновления были сделаны для того, чтобы заставить его работать даже под froyo, см. здесь .

  • Используйте это http://code.google.com/p/google-api-java-client/. Цитирование из описания проекта на сайте

Написанная Google, эта библиотека гибкая, эффективная и мощная Java клиентская библиотека для доступа к любому API на основе HTTP в Интернете. Это рекомендуемая библиотека для доступа Google API на основе REST или JSON-RPC.

`

0 голосов
/ 28 марта 2011

Вы смотрели Руководство разработчика API данных: Java ?Вы также можете напрямую работать с HTTP-запросом / ответом , если вещи, которые вы хотите / нуждаетесь, не поддерживаются в Java API.

Я лично не использовал Java API, но яработали напрямую с HTTP и обнаружили, что это довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...