Android 第三方QQ登录 踩过的坑
2016-12-02 17:55
253 查看
其实做QQ登录吧也不是第一次了,然而还是踩了这个坑……腾讯的文档不要这么让人抓狂啊摔!
首先,我们在腾讯开放平台上注册了自己的应用之后可以拿到appid和appkey,然而,在使用腾讯的api的时候,只用到了appid,appkey并没有什么卵用(当然也可能是我自己没用到哈,反正至今为止,我只用过QQ授权登录或者获取QQ的用户信息)…其次,再次吐槽文档写的太粗略…
首先,按照官方文档我们添加了相关权限:
首先,我们在腾讯开放平台上注册了自己的应用之后可以拿到appid和appkey,然而,在使用腾讯的api的时候,只用到了appid,appkey并没有什么卵用(当然也可能是我自己没用到哈,反正至今为止,我只用过QQ授权登录或者获取QQ的用户信息)…其次,再次吐槽文档写的太粗略…
首先,按照官方文档我们添加了相关权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
添加相关配置:
<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自己的key" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
然后
public UserBean tencentLogin(final Context context) { this.mContext = context; IUiListener = new LoginModel.BaseIULisener(); mQqAuth = QQAuth.createInstance(MyContact.TECENT_APPID, mContext.getApplicationContext()); if (mQqAuth != null && !mQqAuth.isSessionValid()) { mQqAuth.login((Activity) mContext, "all", IUiListener); } else { mQqAuth.logout(mContext); } return null; }这里的 mQqAuth.login((Activity) mContext, "all", IUiListener)是掉起授权界面的关键代码,注意判断的时候!mQqAuth.isSessionValid()前面的感叹号,是非啊,不要搞错了……
然后呢,我们在授权登录的时候会回调一次IUListener,如果你要获取用户信息,那么还需要再回调一次IUListener。
最后,关键的关键,官方文档里面没有的但又必须有的!
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // QQ登录回调,官方文档没这句代码, 但是很重要, 不然不会回调! Tencent.onActivityResultData(requestCode, resultCode, data, IUiListener); if (requestCode == Constants.REQUEST_API) { Tencent.handleResultData(data, IUiListener); } }要在Activity的onActivityResult回调方法里添加这几句代码啊代码,否则不会回调!
相关文章推荐
- Android应用之——最新版本SDK V2.4实现QQ第三方登录
- Android应用之最新版本SDKV2.4实现QQ第三方登录
- 实现QQ登录第三方APP(Android)
- android qq第三方登录(腾讯sdk)
- QQ第三方登录 Android和IOS平台共用一个appID
- android,QQ第三方登录
- 【Android】第三方QQ账号登录的实现
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- Android QQ第三方登录(二)
- Android 第三方QQ、微信、微博登录分享
- Android 实现QQ第三方登录
- AndroidQQ第三方登录个人详情获取
- android第三方(qq、微信、微博)登录和分享
- Android实现QQ第三方登录
- Android QQ第三方登录
- Android 实现QQ第三方登录
- Android应用之最新版本SDKV2.4实现QQ第三方登录
- Android实现QQ第三方登录
- android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
- Android中的OAuth2.0——QQ第三方授权登录