QQ原生第三方登录
来源:互联网 发布:mac终端返回上级目录 编辑:程序博客网 时间:2024/05/16 10:39
QQ 第三方登录
就先简单的写点关于 QQ 第三方登录。
第一步:
打开你的百度搜索 腾讯的开发者平台。注册账号,下载QQ的SDK和jar包。
下载了压缩包之后会有三个jar,直接用这两个就行了。
第二步:配置AndroidManifest
先添加权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
然后在 application 节点中 添加两个 Activity
<activity android:name="com.tencent.tauth.AuthActivity" android:noHistory="true" android:launchMode="singleTask" > <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="tencent你的AppId" /> </intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/>
然后把
你的Appid写在这里。这就配置完了。
第三步:
这里布局比较简单就不给大家看了。
//定义控件 private Button btn; private TextView tt; private Tencent myten; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.main_btn); tt = (TextView) findViewById(R.id.main_text); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //第三方登录QQ的方法 loginQQ(); } }); } //登录的方法 public void loginQQ(){ //创建一个腾讯对象实例 //参数1: 就是你的AppId //参数2: Application的实例 myten = Tencent.createInstance("1105602574",getApplicationContext()); //调用登录QQ 的API //参数1:上下文对象 //参数2:权限,这里 用 “all” 就是全部的权限 //参数3:回调接口 myten.login(MainActivity.this,"all",new BaseUilistener(){ @Override public void docomp(JSONObject values) { initOpenidAndToken(values); } }); } //回调方法 不重写这个方法 可能会获取不到数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(myten != null){ Tencent.onActivityResultData(requestCode,resultCode,data,new BaseUilistener()); } super.onActivityResult(requestCode, resultCode, data); } //初始化Token 的方法 public void initOpenidAndToken(JSONObject jsonObject) { try { String token = jsonObject.getString(Constants.PARAM_ACCESS_TOKEN); String expires = jsonObject.getString(Constants.PARAM_EXPIRES_IN); String openId = jsonObject.getString(Constants.PARAM_OPEN_ID); if (!TextUtils.isEmpty(token) && !TextUtils.isEmpty(expires) && !TextUtils.isEmpty(openId)) { myten.setAccessToken(token, expires); myten.setOpenId(openId); } } catch(Exception e) { } } //创建一个类 实现 回调接口 class BaseUilistener implements IUiListener{ //登录成功就会 回调这个方法 @Override public void onComplete(Object o) { //这里可以获取到 openid //将参数直接转型为 JSONObject 即可 JSONObject data = (JSONObject)o; //调用回调方法 docomp((JSONObject)o); //若想得到 登录人的 用户名 头像 等数据 //要先创建 一个 UserInfo 的 实例 UserInfo userInfo = new UserInfo(MainActivity.this,myten.getQQToken()); //调用 API 这里就跟外边一样了 写自己的逻辑就行了 userInfo.getUserInfo(new IUiListener() { //成功的方法 @Override public void onComplete(Object o){ Log.e("xx",o.toString()); } //错误的方法 @Override public void onError(UiError uiError) { } //取消的方法 @Override public void onCancel() { } }); } //失败了 回调的方法 @Override public void onError(UiError uiError) { Log.e("aa","失败了"); } //取消了 回调的方法 @Override public void onCancel() { Log.e("xx","取消了"); } //为了接口回调 自己定义方法 public void docomp(JSONObject values){ } }
阅读全文
0 0
- QQ原生第三方登录
- iOS原生QQ第三方登录
- QQ原生SDK第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方qq登录
- QQ第三方登录
- QQ第三方登录
- QQ第三方登录
- 第三方登录QQ
- QQ第三方登录
- qq第三方登录
- qq第三方登录
- 第三方QQ登录
- QQ第三方登录
- 小球自由落体动态模拟(Position Based Simulation)
- java之输入输出(ACM,OJ相关)
- Appserv的安装与使用
- 应用双进程白色保活
- 顺序表-删
- QQ原生第三方登录
- C#封装的文件压缩和解压缩类
- Android自定义View入门及实战案例分析
- 51Nod 1265:四点共面(计算几何)
- 文章标题
- JavaWeb中点赞功能的实现及完整实例
- jsp倒计时循环调用
- tomcat热部署配置
- 【HDU6134】Battlestation Operational (莫比乌斯反演)