• 注册腾讯互联开放平台帐号
  • 下载SDK
  • 开发阶段
  • 创建并配置工程
  • 创建实例及实现回调
  • QQ登录
  • 效果展示
  • SDK以及DEMO下载地址


注册腾讯互联开放平台帐号

1. QQ互联网址 : http://connect.qq.com/,用自己的QQ号登录即可,如图中红色框1
2. 点击移动应用接入,如图中红色框2

android手机登录了 手机安卓登录_android手机登录了QQ

3. 点击管理中心或移动应用进入到开发者注册界面(针对没有注册为开发者的QQ号)

android手机登录了 手机安卓登录_android_02

4. 开发者注册,注意开发者类型不要选错了,后面要提供相应的资料

android手机登录了 手机安卓登录_移动应用_03


5.耐心等待审核通过,审核通过后,进入管理中心创建移动应用

android手机登录了 手机安卓登录_android_04

android手机登录了 手机安卓登录_android手机登录了QQ_05


点击你所创建的移动应用,可以看到APP ID,APP KEY。

android手机登录了 手机安卓登录_开放平台_06

下载SDK

android手机登录了 手机安卓登录_android手机登录了QQ_07


终于可以看到下图SDK下载的地方了,不得不吐槽这个用户体验,我们这里选择下载Android SDK 最新版本的

android手机登录了 手机安卓登录_android_08

这里我下载的是

android手机登录了 手机安卓登录_开发者_09

,解压后打开

android手机登录了 手机安卓登录_android手机登录了QQ_10

我们做QQ第三方登录,需要的准备工作就完成了。

开发阶段

创建并配置工程

1. 新建工程并导入SDK的jar文件

以下以eclipse为开发的IDE进行范例说明:

(1)创建一个工程,并把open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs(或lib)目录下,如下图所示:

android手机登录了 手机安卓登录_开放平台_11


(2)将open-sdk.jar加入编译路径中。

具体的操作步骤为:选中open-sdk.jar,右键菜单中选择Build Path, 选择Add to Build Path,如下图所示:

android手机登录了 手机安卓登录_移动应用_12

(3)将mta_sdk_x.x.x.jar加入编译路径中。
按照上面的方法,将mta_sdk_x.x.x.jar加入编译路径中。
在工程的Referenced Libraries目录下看到导入的jar包,说明已经成功将jar包加入build path,如下图所示:

android手机登录了 手机安卓登录_android手机登录了QQ_13

2. 配置AndroidManifest
在应用的AndroidManifest.xml增加配置的节点下增加以下配置(注:不配置将会导致无法调用API);

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android: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" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的AppId" />
</intent-filter>
</activity>

<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize" 
/>

<application>

创建实例及实现回调

  1. 创建实例 Tencent是SDK的功能入口,所有的接口调用都得通过Tencent进行调用。因此,调用SDK,首先需要创建一个Tencent实例,其代码如下:
1.  @Override 
 public void onCreate(Bundle savedInstanceState){ 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 // Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。 
 // 其中APP_ID是分配给第三方应用的appid,类型为String。 
 mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext()); 
 // 1.4版本:此处需新增参数,传入应用程序的全局context,可通过activity的getApplicationContext方法获取 
 // 初始化视图 
 initViews(); 
 }

其中,如果你已经添加了”android.permission.INTERNET”和”android.permission.ACCESS_NETWORK_STATE”权限,则无需重复添加。
而”你的AppId”则要替换成具体应用的AppId,例如你的AppId是”222222″,则标签应该是这样的:
< data android:scheme=”tencent222222”/>

  1. 实现回调
    所有的SDK接口调用,都会传入一个回调,用以接收SDK返回的调用结果。回调的主要接口有两种:
    2.1 实现回调 IUiListener
    调用SDK已经封装好的接口时,例如:登录、快速支付登录、应用分享、应用邀请等接口,需传入该回调的实例。
    IUiListener的实现示例代码如下:
1. private class BaseUiListener implements IUiListener { 
 @Override 
 public void onComplete(JSONObject response) { 
 mBaseMessageText.setText(“onComplete:”); 
 mMessageText.setText(response.toString()); 
 doComplete(response); 
 } 
 protected void doComplete(JSONObject values) { 
 } 
 @Override 
 public void onError(UiError e) { 
 showResult(“onError:”, “code:” + e.errorCode + “, msg:”• e.errorMessage + “, detail:” + e.errorDetail); 
 } 
 @Override 
 public void onCancel() { 
 showResult(“onCancel”, “”); 
 } 
 }
  1. 特别注意 应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:
2. @Override 
 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
 mTencent.onActivityResult(requestCode, resultCode, data); 
 }

QQ登录

QQ登录示例代码:
代码中的listener是IUiListener的一个实例。

public void login() 
 { 
 mTencent = Tencent.createInstance(AppId, this.getApplicationContext()); 
 if (!mTencent.isSessionValid()) 
 { 
 mTencent.login(this, Scope, listener); 
 } 
 }

效果展示

如果用户手机上安装了最新版本的手机QQ或手机QZone,将会调用相应的客户端,通过SSO方式进行登录。此方式可以避免用户多次输入用户名和密码,提升用户的登录体验。
如果用户手机上没有安装任何支持SSO登录的客户端,SDK将会调用系统浏览器,打开登录页面。用户在网页中输入输入用户名和密码后可以完成授权。
授权完成后,界面会自动返回应用界面。用户在应用中进行后续操作。

android手机登录了 手机安卓登录_开发者_14

登录成功后调用public void onComplete(JSONObject arg0) 回传的JsonObject, 其中包含OpenId, AccessToken等重要数据。

{
"ret":0,
"pay_token":"xxxxxxxxxxxxxxxx",
"pf":"openmobile_android",
"expires_in":"7776000",
"openid":"xxxxxxxxxxxxxxxxxxx",
"pfkey":"xxxxxxxxxxxxxxxxxxx",
"msg":"sucess",
"access_token":"xxxxxxxxxxxxxxxxxxxxx"
}

SDK以及DEMO下载地址

Android_SDK_V2.9.3
http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD