admin管理员组文章数量:1582038
1:简介
QQ的第三方授权加分享我们需要导入的依赖包在友盟官方的SDK上可以看文档本地依赖包的路径:E:\shixun1\实现登录分享的依赖;里面有QQ分享、QQ登录、微信分享、微博分享、新浪分享、QQ空间分享、微信朋友圈分享,导入这么多依赖后libs里面关联我们的项目;
首先我们说下我们要去第三方授权方面的代码如下:
1:我们先在AndroidManifest.XML里面加入以下代码:
<activity
android:name="com.umeng.qq.tencent.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<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="tencent59658f6975ca350d6f000ab7" />
</intent-filter>
<!-- 微信 -->
<activity
android:name=".merchant.wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 新浪 -->
<activity
android:name=".merchant.WBShareActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.sina.weibo.sdkponent.WeiboSdkBrowser"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<!-- 忽略 -->
<service
android:name="com.sina.weibo.sdk.DownloadService"
android:exported="false" />
<meta-data
android:name="UMENG_APPKEY"
android:value="5850efdf07fe653307001138" />
<meta-data
android:name="UMENG_CHANNEL"
android:value="Umeng" />
```
2:添加的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- QQ、QQ空间所需权限 -->
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
3:我们在Application配置的代码如下onCreate方法里面代码如下:
@Override
public void onCreate() {
super.onCreate();
PlatformConfig.setWeixin(“wxe3496727fd8b796b”, “8691bea51b96f3eb4e7cd76fbd52a30d”);
//新浪
PlatformConfig.setSinaWeibo(“1170673459”, “9ca72cbce28e178be6f67675862d2545”,”http://www.wandoujia/apps/com.eico.weico“);
//qq qqzone
PlatformConfig.setQQZone(“1105886048”, “mC1QPuxkWOrX99ug”);
UMShareAPI.get(this);
}
4:我们在代码中点击控件授权登录调用的时候代码如下:
UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.QQ,mUmAuthListener);
5:调用的接口代码如下:
UMAuthListener mUmAuthListener = new UMAuthListener() {
public void onStart(SHARE_MEDIA platform) {
//授权开始的回调
}
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
//得到qq授权后的名字
String name = data.get("screen_name");
// 得到头像的URL
String profile_image_url = data.get(“profile_image_url”);
// 调用sp的工具类把得到的名字和图片的url存到里面在存一个登录状态
SPUtils.put(LoginpageActivity.this,”QQname”,name);
SPUtils.put(LoginpageActivity.this,”QQimguri”,profile_image_url);
SPUtils.put(LoginpageActivity.this,”QQstate”,true);
startActivity(new Intent(LoginpageActivity.this,HomeActivity.class));
finish();
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(LoginpageActivity.this, “授权失败”, Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(LoginpageActivity.this, “授权取消”, Toast.LENGTH_SHORT).show();
}
};
6:在加上回调的方法如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
二:以上是授权登录的代码,下面我们说下取消授权的方法:
1:直接在我们点击的控件的时候调用接口:
boolean qQstate = (boolean) SPUtils.get(MyMessageActivity.this, “QQstate”, false);
if(qQstate){
SPUtils.remove(MyMessageActivity.this,”QQname”);
SPUtils.remove(MyMessageActivity.this,”QQimguri”);
SPUtils.remove(MyMessageActivity.this,”QQstate”);
mShareAPI.deleteOauth(MyMessageActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
Toast.makeText(MyMessageActivity.this,”333”,Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map
上面我们是存到SharedPreferences里面的数据对boolean值进行判断如果是true的话清除,false的话就直接吐司一句话;
2:别忘了onActivityResult的方法代码如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
“`
总结:以上为借助友盟实现的QQ授权登录和取消授权的方法;如有不明白的可以留言,有不明白的朋友可以加我QQ939986850联系或者关注的我的公众号更多惊喜!!!
版权声明:本文标题:QQ的第三方授权和取消第三方授权 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727892344a1136443.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论