授权页面,点击登陆授权后闪屏或者不显示用户信息 一般是没有重写

onActivityResult方法
//--------------------


import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.tencent.connect.UserInfo;

import com.tencent.connect.auth.QQToken;
import com.tencent.connect.common.Constants;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;

import org.json.JSONException;
import org.json.JSONObject;



public class QQloginActivity extends AppCompatActivity implements View.OnClickListener {
//id
TextView openidTextView;
//用户名
TextView nicknameTextView;

Button loginButton;
//用户头像
ImageView userlogo;
private Tencent mTencent;

public static String mAppid = seal.yousheng.com.loginlist.Constants.QQAPPID;

Bitmap bitmap = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qqlogin);
    //创建Tenect类
mTencent = Tencent.createInstance(mAppid, QQloginActivity.this);
//用来登录的Button
loginButton = (Button) findViewById(R.id.login);
loginButton.setOnClickListener(this);
//用来显示OpenID的textView
openidTextView = (TextView) findViewById(R.id.user_openid);
//用来显示昵称的textview
nicknameTextView = (TextView) findViewById(R.id.user_nickname);
//用来显示头像的Imageview
userlogo = (ImageView) findViewById(R.id.user_logo);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login:
        //点击自定义的登陆按钮
LoginQQ();
break;

default:
break;
}
}

//这里是调用QQ登录的关键代码
public void LoginQQ() {
//这里的APP_ID请换成你应用申请的APP_ID

/**通过这句代码,SDK实现了QQ的登录,这个方法有三个参数,第一个参数是context上下文,第二个参数SCOPO 是一个String类型的字符串,表示一些权限
官方文档中的说明:应用需要获得哪些API的权限,由“,”分隔。例如:SCOPE = “get_user_info,add_t”;所有权限用“all”
第三个参数,是一个事件监听器,IUiListener接口的实例,这里用的是该接口的实现类 */
mTencent.login(QQloginActivity.this, "all", new BaseUiListener());

}

/**
* 必须重写不然不会返回user数据,这里是个坑腾讯官方没有看到!!
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mTencent.onActivityResult(requestCode, resultCode, data);
if (requestCode == Constants.REQUEST_LOGIN ||
requestCode == Constants.REQUEST_APPBAR) {
Tencent.onActivityResultData(requestCode,resultCode,data,new BaseUiListener());
}
super.onActivityResult(requestCode, resultCode, data);
}


/**
* 调用SDK封装好的借口,需要传入回调的实例 会返回服务器的消息
*/
private class BaseUiListener implements IUiListener {
/**
* 成功
*/
@Override
public void onComplete(final Object response) {
System.out.println("登陆成功");
try {
//获得的数据是JSON格式的,获得你想获得的内容

JSONObject json= (JSONObject) response;
String token = json.getString(Constants.PARAM_ACCESS_TOKEN );
String expires = json.getString(Constants.PARAM_EXPIRES_IN );
//OPENID,作为唯一身份标识
String openId = json.getString(Constants.PARAM_OPEN_ID );
mTencent.setAccessToken(token, expires);
mTencent.setOpenId(openId);

String openidString = ((JSONObject) response).getString("openid");
openidTextView.setText(openidString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取封装在userInfo的数据
QQToken qqToken = mTencent.getQQToken();
UserInfo info = new UserInfo(QQloginActivity.this, qqToken);

info.getUserInfo(new IUiListener() {
@Override
public void onComplete(final Object o) {
System.out.println("登陆成功");
System.out.println(o.toString());

Message msg = new Message();
msg.obj = o;
msg.what = 0;
mHandler.sendMessage(msg);
/**由于图片需要下载所以这里使用了线程,如果是想获得其他文字信息直接
* 在mHandler里进行操作
*
*/
new Thread() {

@Override
public void run() {
// TODO Auto-generated method stub
JSONObject json = (JSONObject) o;
bitmap = null;
try {
bitmap = Util.getImgBitmap(json.getString("figureurl_qq_2"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message msg = new Message();
msg.obj = bitmap;
msg.what = 1;
mHandler.sendMessage(msg);
}
}.start();

}

@Override
public void onError(UiError uiError) {

}

@Override
public void onCancel() {

}
});

}


@Override
public void onError(UiError e) {
Toast.makeText(QQloginActivity.this, e.toString(), Toast.LENGTH_SHORT).show();

}

@Override
public void onCancel() {

}
}



Handler mHandler = new Handler() {

@Override
public void handleMessage(Message msg) {
if (msg.what == 0) {
JSONObject response = (JSONObject) msg.obj;
if (response.has("nickname")) {
try {
String nicknameString = response.getString("nickname");

nicknameTextView.setText(nicknameString);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} else if (msg.what == 1) {
Bitmap bitmap = (Bitmap) msg.obj;
userlogo.setImageBitmap(bitmap);

}
}

};
}
//-----------------------返回回来的数据展示的布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<Button
android:id="@+id/login"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="登录"/>

<ImageView
android:id="@+id/user_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>

<TextView
android:id="@+id/user_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="name"
android:textSize="23dp"
/>

<TextView
android:id="@+id/user_openid"
android:text="ip"
android:textSize="22dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>



</LinearLayout>
//------------------工具类
/**
* 根据头像的url 获取bitmap
*/
public static Bitmap getImgBitmap(final String imageUri) {
Bitmap bitmap = null;
try {
URL myFileUrl = new URL(imageUri);
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();

} catch (IOException e) {
e.printStackTrace();
return null;
}
return bitmap;

}
//----------------------------------配置文件
<!--腾讯QQ-->
<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自己的应用id" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//------------------------------------权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>