首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android QQ 第三方登入 SDK 回調失效解決:升級版本與 Manifest 配置

     編輯:程式設計綜合問答

錯誤現象

使用舊版 SDK (2.9.3) 實現 QQ 登入,登入成功但無法收到回調獲取 userinfo,Logcat 顯示:

E/openSDK_LOG.UIListenerManager: setListener action is null! rquestCode=11101

根因

  • 舊版 SDK 與新版 QQ App 協議不兼容,回調 Intent action 為空。
  • Manifest 缺少必要的 Activity 與 IntentFilter 宣告。

解決步驟

  1. 升級 SDK:下載最新版 Android SDK(建議 3.x+)。
  2. Gradle 依賴(Android Studio):
    dependencies {
        implementation 'com.tencent.connect:qq-sdk:3.3.0' // 以最新版為準
    }
  3. Manifest 配置(關鍵):
    <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{APP_ID}" /> <!-- 替換為你的 App ID -->
        </intent-filter>
    </activity>
    <activity
        android:name="com.tencent.connect.common.AssistActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize" />
  4. 初始化與登入:
    mTencent = Tencent.createInstance(APP_ID, getApplicationContext());
    if (!mTencent.isSessionValid()) {
        mTencent.login(this, "all", new BaseUiListener());
    }

驗證清單

  • App ID 與 Scheme tencent{APP_ID} 完全一致(大小寫敏感)。
  • 測試裝置已安裝 QQ 且版本較新。
  • Logcat 應出現 onComplete 回調,拿到 access_token、openid。

參考資源

騰訊開放平台文檔:Android SDK 接入指南

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved