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

来源:互联网 发布:问道手游秒公示软件 编辑:程序博客网 时间:2024/04/28 12:24

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:在加上回调的方法如下:
@Overrideprotected 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联系或者关注的我的公众号更多惊喜!!!

这里写图片描述

原创粉丝点击