Android Studio 제3자 QQ 로그 인 조작 코드 구현

효과 도 한번 볼 게 요.
这里写图片描述     这里写图片描述
 
                                                这里写图片描述
SDK Jar 가방 을 다 운 받 으 시 면 됩 니 다.
QQ 로그 인 을 실 현 했 습 니 다,
프로젝트 프로젝트 를 새로 만 든 다음,우리 가 방금 다운로드 한 SDK 압축 을 풀 고 jar 폴 더 의 jar 패 키 지 를 프로젝트 libs 에 복사 합 니 다.
这里写图片描述
  아래 가방 을 가 져 오 면 됩 니 다.

프로젝트 구 조 는 다음 과 같다.
这里写图片描述
목록 파일 을 엽 니 다.Androidmanifest 에 가입 권한 과 Activity 는 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tangxiaoying.qq2">
 <!-- QQ         -->
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <application
  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">
  <activity android:name=".MainActivity">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <!--   SDKActivity -->
  <activity
   android:name="com.tencent.tauth.AuthActivity"
   android:launchMode="singleTask"
   android:noHistory="true" >
   <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="tencent1105602574" /> <!--        APPID -->
   </intent-filter>
  </activity>
  <activity android:name="com.tencent.connect.common.AssistActivity"
   android:theme="@android:style/Theme.Translucent.NoTitleBar"
   android:screenOrientation="portrait"/>
 </application>
</manifest>
레이아웃 파일 activitymain 버튼 하나만.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
  >
 <Button
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="  QQ  "
  android:onClick="buttonLogin"
  android:layout_centerInParent="true"
  android:textSize="16sp"
  android:textColor="#f4736e"/>
</RelativeLayout>
다음은 저희 메 인 액 티 비 티 의 코드 입 니 다.

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);
  //    APPID   Context   
  mTencent = Tencent.createInstance(APP_ID,MainActivity.this.getApplicationContext());
 }
 public void buttonLogin(View v){
  /**      ,SDK   QQ   ,         ,      context   ,     SCOPO    String      ,      
           :        API   , “,”  。  :SCOPE = “get_user_info,add_t”;     “all”
        ,        ,IUiListener     ,             */
  mIUiListener = new BaseUiListener();
  //all        
  mTencent.login(MainActivity.this,"all", mIUiListener);
 }
 /**
  *         IUiListener   ,     3   
  * onComplete   onError   onCancel  
  */
 private class BaseUiListener implements IUiListener {
  @Override
  public void onComplete(Object response) {
   Toast.makeText(MainActivity.this, "    ", 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, "    ", Toast.LENGTH_SHORT).show();
  }
  @Override
  public void onCancel() {
   Toast.makeText(MainActivity.this, "    ", Toast.LENGTH_SHORT).show();
  }
 }
 /**
  *    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);
 }
}
총결산
위 에서 말 한 것 은 편집장 이 소개 한 Android Studio 가 제3자 QQ 로그 인 조작 코드 를 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기