读书人

Android上使用googleapi-client-java操

发布时间: 2012-09-09 09:27:54 作者: rapoo

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));}

此外还要处理异常,当授权过期时,那么还要通过manager.invalidateAuthToken("com.google", this.mAuthToken);来清除cache中的授权字符串。

[待续] 1 楼 bluesky139 2011-06-21 楼主的这篇文章很不错,不过是用的calendar,现在我想使用gmail发邮件,不知道楼主有没有搞过。比如"cl"是google约定的获取calendar服务授权时的类型,gmail的话又是什么呢,这个是不是在哪里可以查到,还有后面要向网站请求,网址又是怎么得来的? 2 楼 kbest 2012-03-23 最近也在用这个
但是下的google-api-java-client 有很多,应该导入哪些Jar包呢? 3 楼 kbest 2012-03-23 希望得到demo工程zhandazhi1314@gmail.com,带jar包
按照给的jar包加了很多次
老出问题 4 楼 mypyg 2012-03-27 附件上传了我那个时候用的包 5 楼 kbest 2012-03-27 非常感谢,有什么不懂的再请教,新版本的要导入好几个包 6 楼 junliang237560659 2012-07-13 不好意思,我下载了运行老是错误,不知道什么原因,说GoogleTransport找不到,能帮我一下吗,很急。 7 楼 mypyg 昨天 新版本库中可能已经移除了。
http://mypyg.iteye.com/blog/1144965
http://mypyg.iteye.com/blog/1468952
参考这两篇吧。用的最新版本库。

读书人网 >Android

热点推荐