我正在尝试构建一个Android应用程序,该应用程序在公共日历RSS源的列表中显示Google日历条目。日历源是公共的,但不会与任何特定用户共享。
我在iOS上通过使用Google的gdata库(与公共日历RSS结合)来解析和显示公共日历源。
不幸的是,gdata与Android不兼容。 Google有新的google-api-java-client库,但所有示例代码都与设备上的Google帐户一起使用,然后通过OAuth进行身份验证。
有没有办法使用这些新库来获取和解析公共提要,而无需在设备上存储身份验证信息?甚至可以进行身份验证?
答案 0 :(得分:1)
我找到了解决方案。使用Google Api Java客户端示例中的当前YouTube示例可以看到一个很好的例子。
http://code.google.com/p/google-api-java-client/wiki/SampleProgram
这个难题的缺失部分是:
完成上述操作后,将构建以下代码并获取您需要的所有内容:
HttpTransport transport = new NetHttpTransport();
final JsonFactory jsonFactory = new JacksonFactory();
HttpRequestFactory factory = transport.createRequestFactory(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) {
// set the parser
JsonCParser parser = new JsonCParser(jsonFactory);
request.addParser(parser);
// set up the Google headers
GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("Google-CalendarSample/1.0");
headers.gdataVersion = "2";
request.setHeaders(headers);
}
});
CalendarUrl url = new CalendarUrl(YOUR_FEED_URL);
HttpRequest request = factory.buildGetRequest(url);
CalendarFeed feed = request.execute().parseAs(CalendarFeed.class);