<activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" 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="tencent100491239" /> </intent-filter> </activity>
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import org.apache.http.conn.ConnectTimeoutException;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import com.smart.util.BroadcastAction;
import com.smart.util.BroadcastUtil;
import com.smart.util.Constant;
import com.smart.util.ILog;
import com.smart.util.PrefUtil;
import com.smart.util.Prefkey;
import com.tencent.open.HttpStatusException;
import com.tencent.open.NetworkUnavailableException;
import com.tencent.tauth.Constants;
import com.tencent.tauth.IRequestListener;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import com.utils.lib.ss.common.ToastHelper;
/**
* QQ登陆。
* @author E
*/
public class QqLogin {
private static QqLogin qqLogin = null;
public static QqLogin getInstance(){
if (null == qqLogin) {
qqLogin = new QqLogin();
}
return qqLogin;
}
public void login(Activity context , QqLoginListener loginListener){
//Constant.QQ_APP_ID 这里要替换成自己申请的APP_ID
Tencent tencent = Tencent.createInstance(Constant.QQ_APP_ID, context);
if (null == tencent) {
ToastHelper.makeText(context, "error cased !");
return;
}
tencent.login(context, "get_user_info", new BaseUiListener(tencent,loginListener));
}
class BaseUiListener implements IUiListener{
Tencent tencent = null;
QqLoginListener qqLoginListener = null;
public BaseUiListener(Tencent tencent ,QqLoginListener qqLoginListener) {
super();
this.tencent = tencent;
this.qqLoginListener = qqLoginListener;
}
@Override
public void onComplete(JSONObject values) {
try {
String openid = values.getString("openid");
qqLoginListener.onLoginSuccess(openid);
tencent.requestAsync(Constants.GRAPH_SIMPLE_USER_INFO, null, Constants.HTTP_GET,
new BaseApiListener(qqLoginListener) ,null);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(UiError arg0) {
qqLoginListener.onLoginFail();
}
@Override
public void onCancel() {
qqLoginListener.onCancel();
}
}
class BaseApiListener implements IRequestListener{
QqLoginListener qqLoginListener = null;
public BaseApiListener(QqLoginListener qqLoginListener) {
super();
this.qqLoginListener = qqLoginListener;
}
@Override
public void onComplete(JSONObject jsonObject, Object object) {
try {
ILog.e(jsonObject.toString());
String nickName = jsonObject.getString("nickname");
String figureurl_qq_1 = jsonObject.getString("figureurl_qq_2");
PrefUtil.instance().setPref(Prefkey.THIRD_NICKNAME, nickName);
PrefUtil.instance().setPref(Prefkey.THIRD_IMAGE, figureurl_qq_1);
//发送广播到主页去更新
BroadcastUtil.sendBroadcast(BroadcastAction.UPLOAD_THIRD_INFO);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onConnectTimeoutException(ConnectTimeoutException arg0,
Object arg1) {
}
@Override
public void onHttpStatusException(HttpStatusException arg0, Object arg1) {
}
@Override
public void onIOException(IOException arg0, Object arg1) {
}
@Override
public void onJSONException(JSONException arg0, Object arg1) {
}
@Override
public void onMalformedURLException(MalformedURLException arg0,
Object arg1) {
}
@Override
public void onNetworkUnavailableException(
NetworkUnavailableException arg0, Object arg1) {
}
@Override
public void onSocketTimeoutException(SocketTimeoutException arg0,
Object arg1) {
}
@Override
public void onUnknowException(Exception arg0, Object arg1) {
}
}
/**
* 授权完成后,执行一下步的回调
*/
public static abstract class QqLoginListener{
public void onLoginSuccess(String openid){};
public void onLoginSuccess(String openid, String nickname){};
public void onLoginFail(){};
public void onCancel(){};
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有