友盟集成第三方登录

第一步:创建工程

集成友盟第三方,创建工程时,包名:com.umeng.soexample

 

 

第二步:导入jar和res

将main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程!

 

第三步:添加回调Activity

主要是qq和微信的回调

 

第四步:配置Android Manifest XML


 
 
  1. <!--微信-->
  2. <activity
  3. android:name= ".wxapi.WXEntryActivity"
  4. android:configChanges= "keyboardHidden|orientation|screenSize"
  5. android:exported= "true"
  6. android:theme= "@android:style/Theme.Translucent.NoTitleBar" />
  7. <!--QQ-->
  8. <activity
  9. android:name= "com.tencent.tauth.AuthActivity"
  10. android:launchMode= "singleTask"
  11. android:noHistory= "true">
  12. <intent-filter>
  13. <action android:name="android.intent.action.VIEW" />
  14. <category android:name="android.intent.category.DEFAULT" />
  15. <category android:name="android.intent.category.BROWSABLE" />
  16. <data android:scheme="tencent100424468" />
  17. </intent-filter>
  18. </activity>
  19. <activity
  20. android:name= "com.tencent.connect.common.AssistActivity"
  21. android:configChanges= "orientation|keyboardHidden|screenSize"
  22. android:theme= "@android:style/Theme.Translucent.NoTitleBar" />

 第五步:添加权限

请在AndroidManifest中添加如下权限


 
 
  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  2. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  3. <uses-permission android:name="android.permission.INTERNET" />

如果需要使用QQ纯图分享或避免其它平台纯图分享的时候图片不被压缩,可以增加以下权限:

 


 
 
  1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   
  2.     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 

Android6.0权限适配

请查看你的build.gradle文件,如果 targetSdkVersion小于或等于22,可以忽略这一步,如果大于或等于23,需要做权限的动态申请:


 
 
  1. if(Build.VERSION.SDK_INT>= 23){
  2. String[] mPermissionList = new String[{
  3. Manifest.permission.WRITE_EXTERNAL_STORAGE,
  4. Manifest.permission.ACCESS_FINE_LOCATION,
  5. Manifest.permission.CALL_PHONE,
  6. Manifest.permission.READ_LOGS,
  7. Manifest.permission.READ_PHONE_STATE,
  8. Manifest.permission.READ_EXTERNAL_STORAGE,
  9. Manifest.permission.SET_DEBUG_APP,
  10. Manifest.permission.SYSTEM_ALERT_WINDOW,
  11. Manifest.permission.GET_ACCOUNTS,
  12. Manifest.permission.WRITE_APN_SETTINGS};
  13. ActivityCompat.requestPermissions( this,mPermissionList, 123);
  14. }
  15. @Override
  16. public void onRequestPermissionsResult(int requestCode,
  17. String permissions[], int[] grantResults) {
  18. }

第六步:初始化设置

      自己创建一个类,集成AppLication


 
 
  1. @Override
  2. public void onCreate() {
  3. super.onCreate();
  4. UMConfigure.init( this, "5a12384aa40fa3551f0001d1"
  5. , "umeng",UMConfigure.DEVICE_TYPE_PHONE, ""); //58edcfeb310c93091c000be2 5965ee00734be40b580001a0
  6. }

 在onCreate方法中设置所需要的各个平台的appkey值       


 
 
  1. PlatformConfig.setWeixin( "wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
  2.         //豆瓣RENREN平台目前只能在服务器端配置
  3.         PlatformConfig.setSinaWeibo( "3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");
  4.         PlatformConfig.setYixin( "yxc0614e80c9304c11b0391514d09f13bf");
  5.         PlatformConfig.setQQZone( "100424468", "c7394704798a158208a74ab60104f0ba");
  6.         PlatformConfig.setTwitter( "3aIN7fuF685MuZ7jtXkQxalyi",      "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
  7.         PlatformConfig.setAlipay( "2015111700822536");
  8.         PlatformConfig.setLaiwang( "laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
  9.         PlatformConfig.setPinterest( "1439206");
  10.         PlatformConfig.setKakao( "e4f60e065048eb031e235c806b31c70f");
  11.         PlatformConfig.setDing( "dingoalmlnohc0wggfedpk");
  12.         PlatformConfig.setVKontakte( "5764965", "5My6SNliAaLxEm3Lyd9J");
  13.         PlatformConfig.setDropbox( "oz8v5apet3arcdy", "h7p2pjbzkkxt02a");
  14.         PlatformConfig.setYnote( "9c82bf470cba7bd2f1819b0ee26f86c6ce670e9b");

 最后在AndroidManifest文件中配置;

第七步:签名配置

1、将签名文件复制到app下边

2、配置签名文件

或者ctrl+alt+shift+s打开

3、

 比对着配置;其中keyAlias是别名;keyPassword是签名文件密码;storePassword是确认密码;Store File是自己的签名文件的本工程的路径;

然后:

ok就完事了; 

第八步:开始第三方登录

在Activity中写代码;

获取用户资料

获取用户资料可以使用如下接口:

在需要的位置的点击事件中写

UMShareAPI.get(上下文).getPlatformInfo(UserinfoActivity.this(上下文), SHARE_MEDIA.SINA(需要登录的平台), umAuthListener(登录回调的监听));
 
 

 其中umAuthListener为授权回调,构建如下:


 
 
  1. UMAuthListener authListener = new UMAuthListener() {
  2. /**
  3. * @desc 授权开始的回调
  4. * @param platform 平台名称
  5. */
  6. @Override
  7. public void onStart(SHARE_MEDIA platform) {
  8. }
  9. /**
  10. * @desc 授权成功的回调
  11. * @param platform 平台名称
  12. * @param action 行为序号,开发者用不上
  13. * @param data 用户资料返回
  14. */
  15. @Override
  16. public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
  17. Toast.makeText(mContext, "成功了", Toast.LENGTH_LONG).show();
  18. }
  19. /**
  20. * @desc 授权失败的回调
  21. * @param platform 平台名称
  22. * @param action 行为序号,开发者用不上
  23. * @param t 错误原因
  24. */
  25. @Override
  26. public void onError(SHARE_MEDIA platform, int action, Throwable t) {
  27. Toast.makeText(mContext, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();
  28. }
  29. /**
  30. * @desc 授权取消的回调
  31. * @param platform 平台名称
  32. * @param action 行为序号,开发者用不上
  33. */
  34. @Override
  35. public void onCancel(SHARE_MEDIA platform, int action) {
  36. Toast.makeText(mContext, "取消了", Toast.LENGTH_LONG).show();
  37. }
  38. };

 其中登录成功后的各种操作(跳转、传值等)都在授权回调的onComplete中执行;

public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

            Toast.makeText(mContext, "成功了", Toast.LENGTH_LONG).show();

       }

各种数据都在Map集合中;

登录QQ返回的Map集合中的信息

通过Intent传值跳转就可以把需要的数据传递到下一个页面了;

第九步:授权问题

第一次授权登录成功后,再次进行登录,回默认授权成功

如果需要每次登录都提示登录页面,需要在activity中添加一下代码:


 
 
  1. UMShareConfig config = new UMShareConfig();
  2. config.isNeedAuthOnGetUserInfo( true);
  3. UMShareAPI. get(InfoDetailActivity. this).setShareConfig(config);

目前SDK默认设置为在Token有效期内登录不进行二次授权,如果有需要每次登录都弹出授权页面,便于切换账号的开发者可以添加上述代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值