視頻聊天app源碼Android實現QQ登錄功能

在AndroidManifest.xml的application標籤中添加一下兩個activity。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 註冊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="tencent開放平臺獲取的APPID" /> 
  </intent-filter> 
 </activity> 
 <activity android:name="com.tencent.connect.common.AssistActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:screenOrientation="portrait"/> 

Activity中的代碼

public class MainActivity extends Activity { 
 private static final String TAG = "MainActivity"; 
 private static final String APP_ID = "官方獲取的APPID ";//官方獲取的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()); 
  
//QQ登錄按鈕點擊事件
  login.setOnClickListener(new View.OnClickListener() { 
   @Override
   public void onClick(View v) { 
    mIUiListener = new BaseUiListener(); 
    //all表示獲取所有權限 
    mTencent.login(MainActivity.this,"all", mIUiListener); 
    mUserInfo = new UserInfo(MainActivity.this, mTencent.getQQToken()); //獲取用戶信息 
    mUserInfo.getUserInfo(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()); 
      if(response == null){ 
       return; 
      } 
      try { 
       JSONObject jo = (JSONObject) response; 
        Toast.makeText(MainActivity.this, "登錄成功", 
          Toast.LENGTH_LONG).show(); 
       String nickName = jo.getString("nickname"); 
       String figureurl_1= jo.getString("figureurl_1"); 
       name.setText(nickName); 
       ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(MainActivity.this).build(); 
       ImageLoader.getInstance().init(configuration); 
       ImageLoader.getInstance().displayImage(figureurl_1,img); 
      } catch (Exception e) { 
       // TODO: handle exception 
      } 
     } 
  
     @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(); 
  
  } 
  
 } 
 @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); 
 } 
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章