读书人

7.腾讯微博Android客户端开发自动

发布时间: 2012-07-04 19:33:55 作者: rapoo

7.腾讯微博Android客户端开发——自动获取验证码(1)

原文:http://blog.csdn.net/coolszy/article/details/6596053

通过前面的介绍,我们成功获取了Access?Token,但是在该过程中有个不好的地方:用户输入完QQ信息后,需要记录验证码,然后返回至Activity手动输入验证码,这将会使我们的程序显得非常不友好。我们能不能让程序自动获取到平台返回过来的验证码,而不需要用户手动收入呢?通过参考其它资料,找到了两种解决方法,本次和大家分享第一种解决方案。

?

在进行正题之前,我们先来做一个简单的实验。下面是我编写的一个简单的测试网页,其中包含两个链接,第一个链接比较容易理解,点击后跳转到百度,第二个链接如果在我们的PC浏览器点击肯定会提示找不到网页,但是放在Android系统中呢?下面我们来进行测试。

?

?创建一个Android项目,其中MainActivity界面如下:

?

?

7.腾讯微博Android客户端开发——自动获取验证码(一)

?同时“打开”按钮进行如下操作:


?

?写道

?

?

?下再添加一个<intent-filter>:

?

?

?

?添加完毕后当我们再次运行模拟器。点击“打开”按钮,点击“启动Android”链接后我们发现我们的又回到了MainActivity,注意我们是通过浏览器启动Activity。下面我们需要处理的就是获取请求的路径,也就是?android://MainActivity?id=coolszy。这时我们可以复写Activity种的onNewIntent()方法,不熟悉的朋友可以百度了解该方法。我们都知道Activity之间信息的传递时通过Intent对象,因此通过该方法中的Intent对象,我们可以获得请求的路径,最终获得请求的参数信息:

?


我们在总结下这个实验:这个实验的主要目的是学习如何从浏览器种启动一个Activity,首先我们要给相关的Activity添加一个<intent-filter>,其次通过复写onNewIntent()方法得到返回信息,如果想要被onNewIntent()调用,我们还行给其Activity添加一个android:lauchMode属性。

下面我们回归到本次主题,在OAuth认证第一步种有个oauth_callback参数,作用是认证成功后浏览器会被重定向到这个url中,如果我们url设置为http://www.baidu.com,则会定位到http://www.baidu.com,同样,如果我们把url设置为android://MainActivity,则会定位到android://MainActivity上,如果Activity再加上<intent-filter>,这时MainActivity就可以自动获取到验证码,而不需要我们手动的输入。

首先,设置我们的oauth_callback参数:

?

?

?

?

?

同时给复写MainActivity的onNewIntent()方法,用于接收传递过来的参数信息:

?

@Overrideprotected void onNewIntent(Intent intent){super.onNewIntent(intent);Uri uri = intent.getData();String url = uri.toString();Log.i(TAG, url);int index = url.lastIndexOf("=");if (index!=-1){txtVerifier.setText(url.substring(index+1));}}
?

至此我们的程序就能自动的获取验证码,而不需要用户手动的输入。

?

课程下载地址:http://u.115.com/file/dn43kklr

文档下载地址:http://download.csdn.net/source/3430433

源码下载地址:http://u.115.com/file/aq2vc8m4

读书人网 >Android

热点推荐