QQ的第三方授权和取消第三方授权

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.sdk.component.WeiboSdkBrowser"
            android:configChanges="keyboardHidden|orientation"
            android:exported="false"
            android:windowSoftInputMode="adjustResize" />
        <!-- 忽略 -->
        <service
            android:name="com.sina.weibo.sdk.net.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.com/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联系或者关注的我的公众号更多惊喜!!!

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值