友盟第三方登录集成

集成准备

获取Appkey

集成【友盟+】SDK之前,您首先需要到 【友盟+】官网注册并且添加新应用,获得Appkey


 
 

权限配置:

<!-- 第三方登录集成使用的权限 -->
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- QQ完整版 -->
<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="tencent100424468" />
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 微信 -->
<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 添加友盟appkey -->

 注意:是自己注册并且添加新应用,获得Appkey  

android:value="--自己的key--"  与Activity同级
<meta-data
    android:name="UMENG_APPKEY"
    android:value="5ac04640b27b0a593b000695" />
1.集成友盟SDK 解压后如图

2.使用友盟集成工具生成自己想得到的jar包
 
 
将自动生成的代码copy到项目
授权登陆,首先要在Application中配置
{

    PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
    PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");
}

@Override
public void onCreate() {
    super.onCreate();
    
    //开启debug模式,方便定位错误,具体错误检查方式可以查看http://dev.umeng.com/social/android/quick-integration的报错必看,正式发布,请关闭该模式
    Config.DEBUG = true;
    QueuedWork.isUseThreadPool = false;
    UMShareAPI.get(this);

    
}
注意:新浪配置回调和微信配置回调  微信回调类最好放在wxapi文件夹下虽然这两个类是空的 但必须配置 
新浪 :
import com.umeng.socialize.media.WBShareCallBackActivity;

public class WBShareActivity extends WBShareCallBackActivity {

}
微信:
 
 
import com.umeng.weixin.callback.WXCallbackActivity;

//import com.umeng.socialize.weixin.view.WXCallbackActivity;
public class WXEntryActivity extends WXCallbackActivity {

}

在第三方登录的MainActivity中:
 
 
/**
 * 友盟配置
 */
private void youmengConfig() {

    UMShareConfig config = new UMShareConfig();
    config.isNeedAuthOnGetUserInfo(true);
    UMShareAPI.get(LoginRegisterActivity.this).setShareConfig(config);

    //权限适配
    
if (Build.VERSION.SDK_INT >= 23) {
    String[] mPermissionList = new String[]{
            Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS,
            Manifest.permission.READ_PHONE_STATE,Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW,
            Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS
    };
    ActivityCompat.requestPermissions(this, mPermissionList, 123);
}
}
QQ登录点击事件中

UMShareAPI.get(LoginRegisterActivity.this)
        .getPlatformInfo(LoginRegisterActivity.this, SHARE_MEDIA.QQ, authListener);
//获取用户资料授权
private UMAuthListener authListener = new UMAuthListener() {

    private String name;
    private String image_url;

    /**
     * @param platform 平台名称
     * @desc 授权开始的回调
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {

    }

    /**
     * @param platform 平台名称
     * @param action   行为序号,开发者用不上
     * @param data     用户资料返回
     * @desc 授权成功的回调
     */
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

        Toast.makeText(LoginRegisterActivity.this, "成功了", Toast.LENGTH_LONG).show();
        
      //得到用户资料
      Set<String> set = data.keySet();
      
     for (String string : set) {

       // 设置头像
       if (string.equals("profile_image_url")) {
           image_url = data.get(string);
           Log.i("-------image", image_url);
          
      }
      // 设置昵称
      if (string.equals("screen_name")) {
        name = data.get(string);
      }
 }
}
    /**
     * @desc 授权失败的回调
     * @param platform 平台名称
     * @param action 行为序号,开发者用不上
     * @param t 错误原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {

        Toast.makeText(LoginRegisterActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();
    }

    /**
     * @desc 授权取消的回调
     * @param platform 平台名称
     * @param action 行为序号,开发者用不上
     */
    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {

        Toast.makeText(LoginRegisterActivity.this, "取消了", Toast.LENGTH_LONG).show();

    }
};
/**
  * @desc 回调方法
  */
 
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

}
 
 

猜你喜欢

转载自blog.csdn.net/qq_40116418/article/details/79825237