1. 程式人生 > >Android 實現qq第三方登入並獲取qq基本資訊

Android 實現qq第三方登入並獲取qq基本資訊

###②配置AndroidMainfest.xml

<!-- 新增許可權 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- 新增幾個activity,照樣複製即可 -->

<activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name=".ReturnActivity">
        </activity>
        
<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="tencent222222" />
 				<!-- 預設測試id -->
            </intent-filter>
</activity>

###③java程式碼

//所需兩個物件
private Tencent mTencent; // qq主操作物件
private IUiListener iuilisten;//qq事件物件

// 初始化qq主操作物件 騰訊提供測試id 222222
mTencent = Tencent.createInstance("222222", getApplicationContext());

//執行登入操作,使用的時候需要建一個點選監聽事件,點選後執行下段程式碼即可
iuilisten = new IUiListener() {

			@Override
			public void onCancel() {

			}

			public void onComplete(Object response) {

				if (null == response) {
					System.out.println("返回為空登入失敗");
					return;
				}
				JSONObject jsonResponse = (JSONObject) response;
				if (null != jsonResponse && jsonResponse.length() == 0) {
					System.out.println("返回為空登入失敗");
					return;
				}
				System.out.println("登入成功:=" + response);
			}

			@Override
			public void onError(UiError arg0) {

			}
		};
		// 開始qq授權登入
		// 要所有許可權
		mTencent.login(MainActivity.this, "all", iuilisten);

//獲取登入後的qq資訊
UserInfo userInfo = new UserInfo(MainActivity.this,
				mTencent.getQQToken());
		IUiListener userInfoListener = new IUiListener() {

			@Override
			public void onError(UiError arg0) {
				// TODO 自動生成的方法存根

			}

			@Override
			public void onComplete(final Object arg0) {
				// TODO 自動生成的方法存根
				//獲取的資訊如下:
				
                /*{"ret":0,"msg":"",
                "is_lost":0,
                "nickname":"(舊)正義狂哥",
                "gender":"男",
                "province":"山東",
                "city":"濰坊",
                "figureurl":"http:\/\/qzapp.qlogo.cn\/qzapp\/222222\/1B3AB0DB9926950AB08F98472FF60D2F\/30",
                "figureurl_1":"http:\/\/qzapp.qlogo.cn\/qzapp\/222222\/1B3AB0DB9926950AB08F98472FF60D2F\/50",
                "figureurl_2":"http:\/\/qzapp.qlogo.cn\/qzapp\/222222\/1B3AB0DB9926950AB08F98472FF60D2F\/100",
                "figureurl_qq_1":"http:\/\/q.qlogo.cn\/qqapp\/222222\/1B3AB0DB9926950AB08F98472FF60D2F\/40",
                "figureurl_qq_2":"http:\/\/q.qlogo.cn\/qqapp\/222222\/1B3AB0DB9926950AB08F98472FF60D2F\/100",
                "is_yellow_vip":"0",
                "vip":"0",   "yellow_vip_level":"0",  
                "level":"0","is_yellow_year_vip":"0"}
                */
                //獲取資訊的格式可以轉化為json格式,然後再獲取
                //頭像地址一般使用figureurl_qq_2即可
                //如何獲取網路圖片地址請參考另一個部落格
                //http://blog.csdn.net/zhengyikuangge/article/details/53150170
                
				}

			}

			@Override
			public void onCancel() {
				// TODO 自動生成的方法存根

			}
		};
		userInfo.getUserInfo(userInfoListener);
	}