1.按照文檔,下載SDK赌厅,將jar放入libs穷绵,
2.配置AndroidManifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 從QQ登錄中copy的代碼-->
<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="tencent1105546048" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
3.創(chuàng)建實例:
// Tencent類是SDK的主要實現(xiàn)類,開發(fā)者可通過Tencent類訪問騰訊開放的OpenAPI特愿。
// 其中APP_ID是分配給第三方應(yīng)用的appid仲墨,類型為String。
mTencent = Tencent.createInstance(APP_ID, this);
這里實例化的時候一直崩潰揍障,信息:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;
解決:
在AndroidManifest.xml文件的application標簽里面加入
<uses-library android:name="org.apache.http.legacy" android:required="false" />
4.實現(xiàn)回調(diào) IUiListener
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.REQUEST_LOGIN ||
requestCode == Constants.REQUEST_APPBAR) {
Tencent.onActivityResultData(requestCode, resultCode, data, loginListener);
}
super.onActivityResult(requestCode, resultCode, data);
}
IUiListener loginListener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject values) {
Log.d("SDKQQAgentPref", "AuthorSwitch_SDK:" + SystemClock.elapsedRealtime());
}
};
private class BaseUiListener implements IUiListener {
@Override
public void onComplete(Object response) {
if (null == response) {
Log.d(TAG, "返回為空, 登錄失敗");
return;
}
JSONObject jsonResponse = (JSONObject) response;
if (null != jsonResponse && jsonResponse.length() == 0) {
Log.d(TAG, "返回為空, 登錄失敗");
return;
}
Util.showResultDialog(MainActivity.this, response.toString(), "登錄成功");
doComplete((JSONObject) response);
}
protected void doComplete(JSONObject values) {
}
@Override
public void onError(UiError e) {
}
@Override
public void onCancel() {
}
}
5.跳轉(zhuǎn)到QQ請求登錄
mTencent.login(this, "all", loginListener);