1. 注册成为腾讯开发者(登录时使用QQ号码和密码,需要上传开发者手持身份证的照片)
http://wiki.open.qq.com/wiki/%E9%A6%96%E9%A1%B5
2. 接入移动应用,获取applicationid和secret key
3. 下载SDK(当前最新版本为3.1.0),内含官方的完整DEMO
4. 新建项目,按照官方指导文档搭建环境:
http://wiki.open.qq.com/wiki/%E5%88%9B%E5%BB%BA%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E7%A8%8B
4.1 复制jar文件
4.2 修改AndroidManifes.xml 添加权限和两个Activity
<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的AppId" />
</intent-filter>
</activity>
<activityandroid:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
/>
<application>
5. 参考SDK中的官方案例进行开发
5.1 需要两个与登录相关的属性
Tencent主要负责登录、登出、获取登录账号的个人信息等。这些操作均为异步进行,操作结果以JSONObject对象的形式从服务器传递到本地。要获取结果,必须提供IUiListener监听器,在回调方法中接收结果。
5.2 初始化tencent对象
login方法就是进行登录操作,对应的还有logou方法。
5.3 listener为监听器,需要声明为属性,因为需要在onActivityResult方法使用到该对象(见第6步)。
监听器中有三个回调方法,分别是onError,onComplete和onCancel
任何成功的操作都将回调onComplete方法,并将操作结果JSONObject作为参数传入方法。参数使用的是Object类型,所以需要做一次类型的强制转换。
代码的红色部分,为处理tencent.login方法结果的代码。从回调方法的JSONObject参数中获得token、expires和opinId三个值设置给tencent对象的对应属性。
5.4 设置完毕后,执行绿色部分的代码。利用UserInfo对象以及设置好的tencent对象来获得当前登录用户的个人信息。获取个人信息也是异步过程,因此也需要一个监听器,监听器类型依然使用IUiListener。如果获得个人信息成功后,会回调监听器的onComplete方法,并将封装了个人信息的JSONObject作为参数传入。
5.5 展开绿色框中的onComplete方法
从JSONObject取得相应的内容进行呈现。头像属性是一个URL地址,所以需要进行网络图片的加载,这里使用了Picasso类库。
6. 需要特别注意的是,如果IUiListener要发挥作用接受回调,必须要重写onActivityResult方法,代码如下:
没有这行代码,IUiListener监听器的回调方法是不会被回调的!