Android下使用googleapi-client-java操作google calendar(一)
刷机又把数据刷没了,网络时代,数据还是和服务器同步好了。
从 http://code.google.com/p/google-api-java-client 下载了库和sample,因为此库还在更新中,文档不是很全,自己摸索了一遍,总结在下面。
访问google服务的流程:
1.使用用户名、密码获取授权字符串。
2.使用授权字符串以及其他的参数发送http请求。
3.解析响应,并处理结果。
在Android平台上第一步可以通过AccountManager服务来实现,只要有绑定的Gmail账户,就无须再次输入密码。
第二步以及第三步可以利用Google封装好的库来实现,有两个官方库可用,一个是gdata-client-java,一个是googleapi-client-java,后者是新出的库,具体该采用哪个库可以参见其Wiki根据自己的情况选择。
此处是新项目,无需考虑旧代码,所以选择了后者。
具体的流程:
1.创建一个处理HTTP发送接收的对象,通过GoogleTransport类(库提供)的静态函数create()来创建:
if (bundle.containsKey(AccountManager.KEY_INTENT)) {//需要和用户交互。使用此intent启动activity。Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT);int flags = intent.getFlags();flags &= ~Intent.FLAG_ACTIVITY_NEW_TASK;//清除新任务标志intent.setFlags(flags);startActivityForResult(intent, REQUEST_AUTHENTICATE);} else if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {//得到了key,执行loginauthenticatedClientLogin(bundle.getString(AccountManager.KEY_AUTHTOKEN));}