第三方 QQ登录
来源:互联网 发布:c语言return返回值给谁 编辑:程序博客网 时间:2024/05/22 00:22
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 清单文件配置 --><activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" /><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="tencent1105602574" /> </intent-filter></activity><!-- -->private static final String APP_ID = "1105602574";private Tencent mTencent;private BaseUiListener mIUiListener;private ImageView ic_qq;// 第三方登录 private void qq_login(){ //第三方登录 mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext()); ic_qq = muen_layout.findViewById(R.id.ic_qq); ic_qq.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /**通过这句代码,SDK实现了QQ的登录,这个方法有三个参数,第一个参数是context上下文,第二个参数SCOPO 是一个String类型的字符串,表示一些权限 官方文档中的说明:应用需要获得哪些API的权限,由“,”分隔。例如:SCOPE = “get_user_info,add_t”;所有权限用“all” 第三个参数,是一个事件监听器,IUiListener接口的实例,这里用的是该接口的实现类 */ mIUiListener = new BaseUiListener(); mTencent.login(HomeActivity.this,"all", mIUiListener); } }); }/** * 自定义监听器实现IUiListener接口后,需要实现的3个方法 * onComplete完成 onError错误 onCancel取消 */public class BaseUiListener implements IUiListener { @Override public void onComplete(Object response) { Toast.makeText(HomeActivity.this, "授权成功", Toast.LENGTH_SHORT).show(); Log.e("TAG", "response:" + response); JSONObject obj = (JSONObject) response; try { String openID = obj.getString("openid"); String accessToken = obj.getString("access_token"); String expires = obj.getString("expires_in"); mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken,expires); QQToken qqToken = mTencent.getQQToken(); UserInfo mUserInfo = new UserInfo(getApplicationContext(),qqToken); mUserInfo.getUserInfo(new IUiListener() { @Override public void onComplete(Object response) { Log.e("TAG","登录成功"+response.toString()); Gson gson = new Gson(); UserBean userBean = gson.fromJson(response.toString(), UserBean.class); // tv.setText(userBean.getNickname()+""); BitmapUtils bitmapUtils3=new BitmapUtils(HomeActivity.this); bitmapUtils3.display(imageView2,userBean.getFigureurl()); } @Override public void onError(UiError uiError) { Log.e("TAG","登录失败"+uiError.toString()); } @Override public void onCancel() { Log.e("TAG","登录取消"); } }); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(UiError uiError) { Toast.makeText(HomeActivity.this, "授权失败", Toast.LENGTH_SHORT).show(); } @Override public void onCancel() { Toast.makeText(HomeActivity.this, "授权取消", Toast.LENGTH_SHORT).show(); }}/** * 在调用Login的Activity或者Fragment中重写onActivityResult方法 * @param requestCode * @param resultCode * @param data */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == Constants.REQUEST_LOGIN){ Tencent.onActivityResultData(requestCode,resultCode,data,mIUiListener); } super.onActivityResult(requestCode, resultCode, data);}
Beanpackage com.bawei.zy.zyy1121;import com.google.gson.Gson;/** * Created by ${张洋洋} on 2017/11/21. */public class UserBean { /** * is_yellow_year_vip : 0 * ret : 0 * figureurl_qq_1 : http://q.qlogo.cn/qqapp/1105602574/E0909432A5B8E81D75F9960CE76381A6/40 * figureurl_qq_2 : http://q.qlogo.cn/qqapp/1105602574/E0909432A5B8E81D75F9960CE76381A6/100 * nickname : 麦片_ * yellow_vip_level : 0 * is_lost : 0 * msg : * city : 西部 * figureurl_1 : http://qzapp.qlogo.cn/qzapp/1105602574/E0909432A5B8E81D75F9960CE76381A6/50 * vip : 0 * level : 0 * figureurl_2 : http://qzapp.qlogo.cn/qzapp/1105602574/E0909432A5B8E81D75F9960CE76381A6/100 * province : * is_yellow_vip : 0 * gender : 男 * figureurl : http://qzapp.qlogo.cn/qzapp/1105602574/E0909432A5B8E81D75F9960CE76381A6/30 */ private String is_yellow_year_vip; private int ret; private String figureurl_qq_1; private String figureurl_qq_2; private String nickname; private String yellow_vip_level; private int is_lost; private String msg; private String city; private String figureurl_1; private String vip; private String level; private String figureurl_2; private String province; private String is_yellow_vip; private String gender; private String figureurl; public static UserBean objectFromData(String str) { return new Gson().fromJson(str, UserBean.class); } public String getIs_yellow_year_vip() { return is_yellow_year_vip; } public void setIs_yellow_year_vip(String is_yellow_year_vip) { this.is_yellow_year_vip = is_yellow_year_vip; } public int getRet() { return ret; } public void setRet(int ret) { this.ret = ret; } public String getFigureurl_qq_1() { return figureurl_qq_1; } public void setFigureurl_qq_1(String figureurl_qq_1) { this.figureurl_qq_1 = figureurl_qq_1; } public String getFigureurl_qq_2() { return figureurl_qq_2; } public void setFigureurl_qq_2(String figureurl_qq_2) { this.figureurl_qq_2 = figureurl_qq_2; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getYellow_vip_level() { return yellow_vip_level; } public void setYellow_vip_level(String yellow_vip_level) { this.yellow_vip_level = yellow_vip_level; } public int getIs_lost() { return is_lost; } public void setIs_lost(int is_lost) { this.is_lost = is_lost; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getFigureurl_1() { return figureurl_1; } public void setFigureurl_1(String figureurl_1) { this.figureurl_1 = figureurl_1; } public String getVip() { return vip; } public void setVip(String vip) { this.vip = vip; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public String getFigureurl_2() { return figureurl_2; } public void setFigureurl_2(String figureurl_2) { this.figureurl_2 = figureurl_2; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getIs_yellow_vip() { return is_yellow_vip; } public void setIs_yellow_vip(String is_yellow_vip) { this.is_yellow_vip = is_yellow_vip; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getFigureurl() { return figureurl; } public void setFigureurl(String figureurl) { this.figureurl = figureurl; }}
阅读全文
0 0
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方qq登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方登录QQ
- QQ第三方登录
- qq第三方登录
- qq第三方登录
- 第三方QQ登录
- QQ第三方登录
- qq第三方登录
- QQ第三方登录
- QQ第三方登录
- Oracle 11.2.0.4 升级到12.1.0.2 测试
- shell学习四十七天----文件比较cmp,diff,patch
- 文件拖拽到窗口
- Centos6.5手动编译安装nginx
- 各类机器学习问题的最优结果合集!附论文及实现地址索引
- 第三方 QQ登录
- 数字在排序数组中出现的次数
- Fragment+Viewpager结合实现底部页面滑动
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
- 数组中只出现一次的数字
- 开源 java CMS
- [操作系统] 实现线程包的方式
- <Reinforcement Learning>1 简介
- RabbitMQ安装教程