日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android qq第三方登录 实现,Android Studio实现第三方QQ登录操作代码

發(fā)布時(shí)間:2023/12/14 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android qq第三方登录 实现,Android Studio实现第三方QQ登录操作代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來(lái)看看效果圖吧

? ?

實(shí)現(xiàn)QQ登錄了,

新建一個(gè)項(xiàng)目工程 ,然后把我們剛才下載的SDK解壓將jar文件夾中的jar包拷貝到我們的項(xiàng)目libs中

導(dǎo)入一個(gè)下面架包就可以

項(xiàng)目結(jié)構(gòu)如下

打開我們的清單文件Androidmanifest 在里面加入權(quán)限和注冊(cè)Activity 如下

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

android:name="com.tencent.tauth.AuthActivity"

android:launchMode="singleTask"

android:noHistory="true" >

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:screenOrientation="portrait"/>

布局文件activity_main 就一個(gè)Button按鈕

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="點(diǎn)擊QQ登錄"

android:onClick="buttonLogin"

android:layout_centerInParent="true"

android:textSize="16sp"

android:textColor="#f4736e"/>

下面就是我們的MainActivity中的代碼了

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Toast;

import com.tencent.connect.UserInfo;

import com.tencent.connect.auth.QQToken;

import com.tencent.connect.common.Constants;

import com.tencent.tauth.IUiListener;

import com.tencent.tauth.Tencent;

import com.tencent.tauth.UiError;

import org.json.JSONException;

import org.json.JSONObject;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

private static final String APP_ID = "1105602574";//官方獲取的APPID

private Tencent mTencent;

private BaseUiListener mIUiListener;

private UserInfo mUserInfo;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//傳入?yún)?shù)APPID和全局Context上下文

mTencent = Tencent.createInstance(APP_ID,MainActivity.this.getApplicationContext());

}

public void buttonLogin(View v){

/**通過(guò)這句代碼,SDK實(shí)現(xiàn)了QQ的登錄,這個(gè)方法有三個(gè)參數(shù),第一個(gè)參數(shù)是context上下文,第二個(gè)參數(shù)SCOPO 是一個(gè)String類型的字符串,表示一些權(quán)限

官方文檔中的說(shuō)明:應(yīng)用需要獲得哪些API的權(quán)限,由“,”分隔。例如:SCOPE = “get_user_info,add_t”;所有權(quán)限用“all”

第三個(gè)參數(shù),是一個(gè)事件監(jiān)聽(tīng)器,IUiListener接口的實(shí)例,這里用的是該接口的實(shí)現(xiàn)類 */

mIUiListener = new BaseUiListener();

//all表示獲取所有權(quán)限

mTencent.login(MainActivity.this,"all", mIUiListener);

}

/**

* 自定義監(jiān)聽(tīng)器實(shí)現(xiàn)IUiListener接口后,需要實(shí)現(xiàn)的3個(gè)方法

* onComplete完成 onError錯(cuò)誤 onCancel取消

*/

private class BaseUiListener implements IUiListener {

@Override

public void onComplete(Object response) {

Toast.makeText(MainActivity.this, "授權(quán)成功", Toast.LENGTH_SHORT).show();

Log.e(TAG, "response:" + response);

JSONObject obj = (JSONObject) response;

try {

String openID = obj.getString("openid");

String accessToken = obj.getString("access_token");

String expires = obj.getString("expires_in");

mTencent.setOpenId(openID);

mTencent.setAccessToken(accessToken,expires);

QQToken qqToken = mTencent.getQQToken();

mUserInfo = new UserInfo(getApplicationContext(),qqToken);

mUserInfo.getUserInfo(new IUiListener() {

@Override

public void onComplete(Object response) {

Log.e(TAG,"登錄成功"+response.toString());

}

@Override

public void onError(UiError uiError) {

Log.e(TAG,"登錄失敗"+uiError.toString());

}

@Override

public void onCancel() {

Log.e(TAG,"登錄取消");

}

});

} catch (JSONException e) {

e.printStackTrace();

}

}

@Override

public void onError(UiError uiError) {

Toast.makeText(MainActivity.this, "授權(quán)失敗", Toast.LENGTH_SHORT).show();

}

@Override

public void onCancel() {

Toast.makeText(MainActivity.this, "授權(quán)取消", Toast.LENGTH_SHORT).show();

}

}

/**

* 在調(diào)用Login的Activity或者Fragment中重寫onActivityResult方法

* @param requestCode

* @param resultCode

* @param data

*/

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if(requestCode == Constants.REQUEST_LOGIN){

Tencent.onActivityResultData(requestCode,resultCode,data,mIUiListener);

}

super.onActivityResult(requestCode, resultCode, data);

}

}

總結(jié)

以上所述是小編給大家介紹的Android Studio實(shí)現(xiàn)第三方QQ登錄操作代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

總結(jié)

以上是生活随笔為你收集整理的android qq第三方登录 实现,Android Studio实现第三方QQ登录操作代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。