使用友盟完成第三方QQ登录,并回传头像等数据
来源:互联网 发布:java工作流activity 编辑:程序博客网 时间:2024/04/26 04:08
这是自己总结的,可以实现,我做的只是QQ登录
不多说,直接进入主题
先看运行效果
点击button,跳转到登录界面
授权并登录
登录并返回信息
我总结的东西步骤太多,但是步骤一个不少,步骤很清晰
1:配置需要的东西
1.1 找到友盟官网,并注册,登录
1.2 登录以后进入友盟主页,点击产品---->U-Share
1.3 点击U-Share进入页面后,点击SDK及文档下的Android机器人图标
1.4 进入以后下载所需要的SDK
1.5 下载SDK 根据自己的需求勾选
1.6 下载,解压并打开后,双击友盟集成工具,打开以后勾选自己需要的(我做的是QQ完整版,使用的是Android studio)
1.7 点击OK以后会生成一个文件夹
1.8 点开文件夹以后 ,把libs下的jar包导入到工程里的libs中
1.9 把jar包导入到 library中
2.0 把res文件夹下的文件拷入到工程相应的文件夹下
2.1 把生成的debug.keystore 导入到工程中,要和build同级
2.2配置Android Mainfest.xml权限
<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" />
2.3 sdk中需要的activity
<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:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/> <meta-data android:name="UMENG_APPKEY" android:value="561cae6ae0f55abd990035bf" > </meta-data>
2.4 增加签名中的文件
buildTypes { release { minifyEnabled false signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled false signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
2.5 Application中
public class App extends Application { { //配置QQappkey PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); } private UMShareAPI umShareAPI; private static App app; public static App getApp(){ return app; } @Override public void onCreate() { super.onCreate(); app=this; x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); //初始化sdk umShareAPI=UMShareAPI.get(this); } public UMShareAPI getUmShareAPI() { return umShareAPI; }}
2.6 MainActivity中
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView image; private TextView name,city,gender,province; private Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //点击按钮跳转到登录页面 login = (Button) findViewById(R.id.login); //需要显示的各个控件 image = (ImageView) findViewById(R.id.iconurl); name = (TextView) findViewById(R.id.name); city = (TextView) findViewById(R.id.city); gender = (TextView) findViewById(R.id.gender); province = (TextView) findViewById(R.id.province); login.setOnClickListener(this); } @Override public void onClick(View v) { App.getApp().getUmShareAPI().doOauthVerify(this, SHARE_MEDIA.QQ, new UMAuthListener() { @Override public void onStart(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this,"onStart",Toast.LENGTH_SHORT).show(); } @Override public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) { if(i==0){//判断i = 0,只是登录成功,但是获取不到数据 Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); //获取信息 App.getApp().getUmShareAPI().getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, this); } if(i==2){//当i=2/时,获取信息 login.setVisibility(View.GONE); String imageurl = map.get("iconurl");//头像 String nameString = map.get("name");//昵称 String genderString = map.get("gender");//男女 String cityString = map.get("city");//城市 String provinceString = map.get("province");//省份 x.image().bind(image,imageurl); name.setText(nameString); gender.setText(genderString); city.setText(cityString); province.setText(provinceString); } } @Override public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) { Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show(); } @Override public void onCancel(SHARE_MEDIA share_media, int i) { Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); App.getApp().getUmShareAPI().onActivityResult(requestCode,resultCode,data);
2.7 布局文件中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="activ.kuaikan.com.qq.MainActivity" android:orientation="vertical"> <Button android:id="@+id/login" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="QQ登录" android:layout_marginTop="40dp"/> <ImageView android:id="@+id/iconurl" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/gender" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/city" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" /><TextView android:id="@+id/province" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
拓展
阅读全文
0 0
- 使用友盟完成第三方QQ登录,并回传头像等数据
- 友盟第三方QQ登录和获取用户登录信息并设置用户头像
- 第三方登录QQ+获取QQ头像
- 第三方登录(传递QQ头像)
- QQ第三方登录获取头像
- 友盟第三方登录获取QQ的头像和昵称
- 友盟第三方登录获取QQ的头像和昵称
- 友盟第三方登录QQ
- 友盟第三方QQ登录
- 友盟集成QQ第三方登录
- 友盟第三方登录之QQ
- qq第三方登陆和回传头像
- qq第三方登录+回传信息
- QQ第三方登录返回头像和昵称
- 使用QQ互联完成网站的QQ第三方登录(详解+坑)
- qq第三方登录时头像为qq空间头像的问题
- 实现第三方登录,并获取头像信息
- 友盟第三方登录QQ,点击登录无响应
- 2017-07-14
- 代码规范中的PMD规范的通俗理解。
- SpringCloud系列(4)---Feign 声明式REST调用
- MongoDB聚合操作Aggregation
- 市面上的通用版CRM无法实现公司需求该如何破
- 使用友盟完成第三方QQ登录,并回传头像等数据
- 使用可变参数的方法记录log
- LAMP搭建——PHP安装
- solr-全文检索引擎基本原理
- poj 3468 A Simple Problem with Integers(线段树)(第二部分 成段更新,区间求和)
- cf424div2 B. Keyboard Layouts
- JDBC数据库连接池dbcp
- 第一次写的博客
- Matlab中矩阵的基本运算