注册腾讯开放平台,并上传应用通过审核admin管理员组文章数量:1532656
下载SDK:
http://wiki.open.qq/wiki/mobile/SDK下载
因为只用到QQ登录,所以只要下载基础包就OK了。
代码集成:
在AndroidManifest.xml中,加入:
<activity android:name="com.tencent.tauth.AuthActivity">
<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.connectmon.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
/>
在登录的Activity中创建Tencent实例:
mTencent=Tencent.createInstance(mAppId, context);
设置回调监听:
public void onActivityResult(int requestCode, int resultCode, Intent data){
mTencent.onActivityResult(requestCode,requestCode,data);
}
创建回调函数:
public static class BaseUiListener implements IUiListener{
@Override
public void onComplete(Object o) {
JSONObject response=(JSONObject)o;
AndroidLog.d(TAG,"onComplete:"+response.toString());
}
@Override
public void onError(UiError uiError) {
AndroidLog.e(TAG, "onError:" + uiError.toString());
}
@Override
public void onCancel() {
AndroidLog.d(TAG,"onCancel");
}
}
登录代码:
if(!mTencent.isSessionValid()){
mTencent.login(activity,"",new BaseUiListener ());
}
测试的时候,需要用正式签名的APP版本,因为tencent会检查签名是否和当初上传的APP一致。
登录成功后的返回结果:
onComplete:{"ret":0,"pay_token":"XXXXXXXXXXXXXXX","pf":"desktop_m_qq-10000144-android-2002-","query_authority_cost":73,"authority_cost":5883,"openid":"XXXXXXXXXXXXXXXXXXX","expires_in":7776000,"pfkey":"XXXXXXXXXXXXXXX","msg":"","access_token":"XXXXXXXXXXXX","login_cost":540}
当APP在退出后,再次进行QQ登录时,可以先设置好openid和accesstoken,这样如果openid和accesstoken还有效的话,就不需要再次登录了:
mTencent.setOpenId(openId);
mTencent.setAccessToken(accessToken,null);//第二个参数是请求的授权时间,如果当前有效时间小于请求的授权时间,还是需要再次登录。
版权声明:本文标题:APP使用QQ登录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725631003a1033733.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论