您的位置:首页 > 移动开发 > Android开发

Android第三方登录详解2

2016-05-12 09:29 429 查看
接着Android第三方登录详解1讲
1.找到友盟 文档中心



2.找到



3.将

UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.login");


这句话放到对应activity 弄成全局即可

4QQ 登录

//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(this, "100424468",
"c7394704798a158208a74ab60104f0ba");
qqSsoHandler.addToSocialSDK();


5将上述代码放到activity里 oncreate(Bundle savedInstanceState){}里 导包

6找到AndroidManifest.xml



7将下面代码沾到里面 添加 个权限 <uses-permission android:name="android.permission.GET_TASKS"/>

<!-- ############ QQ空间和QQ SSO授权的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="tencent你的QQ互联APPID" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait">
</activity>


如图



8.在对应按钮监听里打

/**
*  QQ登录
* */
private void QQDengLu() {
//监听
qq.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

mController.doOauthVerify(mContext, SHARE_MEDIA.QQ, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
//获取相关授权信息
mController.getPlatformInfo(HomePage.this, SHARE_MEDIA.QQ, new UMDataListener() {
@Override
public void onStart() {
Toast.makeText(HomePage.this, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(int status, Map<String, Object> info) {
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set<String> keys = info.keySet();

/*    for(String key : keys){
sb.append(key+"="+info.get(key).toString()+"\r\n");*/

// }

//改成QQ头像
String u = (String) info.get("profile_image_url");
//给imageview赋值
ImageLoader.getInstance().displayImage(u, tiouxiang);
//qq用户名screen_name
String name = (String) info.get("screen_name");
//textview赋值
text_name.setText(" "+name);

// Log.d("TestData",sb.toString());

}else{
Log.d("TestData","发生错误:"+status);
}
}
});
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
}
} );
}
});
}


9.完成

10.微博登录接着上面打个微博监听里面打

mController.doOauthVerify(activity, SHARE_MEDIA.SINA,new UMAuthListener() {
@Override
public void onError(SocializeException e, SHARE_MEDIA platform) {
}
@Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
if (value != null && !TextUtils.isEmpty(value.getString("uid"))) {
Toast.makeText(activity, "授权成功.",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(activity, "授权失败",Toast.LENGTH_SHORT).show();
}
mController.getPlatformInfo(activity, SHARE_MEDIA.SINA, new UMDataListener() {
@Override
public void onStart() {
Toast.makeText(activity, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(int status, Map<String, Object> info) {
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set<String> keys = info.keySet();
//                                for(String key : keys){
//                                   sb.append(key+"="+info.get(key).toString()+"\r\n");
//                                }
//profile_image_url
//改成微博头像
String u = (String) info.get("profile_image_url");
ImageLoader.getInstance().displayImage(u, tiouxiang);
//微博用户名screen_name
String name = (String) info.get("screen_name");
text_name.setText(" "+name);
System.out.println(sb.toString()+"vvvvvvvvvvvvv");
Log.d("TestData",sb.toString());
}else{
Log.d("TestData","发生错误:"+status);
}
}
});
}
@Override
public void onCancel(SHARE_MEDIA platform) {}
@Override
public void onStart(SHARE_MEDIA platform) {}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: