发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行

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_IDTencent 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;}@Overridepublic 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();}}@Overridepublic void onError(UiError arg0) {qqLoginListener.onLoginFail();}@Overridepublic void onCancel() {qqLoginListener.onCancel();}}class BaseApiListener implements IRequestListener{QqLoginListener qqLoginListener = null;public BaseApiListener(QqLoginListener qqLoginListener) {super();this.qqLoginListener = qqLoginListener;}@Overridepublic 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();}}@Overridepublic void onConnectTimeoutException(ConnectTimeoutException arg0,Object arg1) {}@Overridepublic void onHttpStatusException(HttpStatusException arg0, Object arg1) {}@Overridepublic void onIOException(IOException arg0, Object arg1) {}@Overridepublic void onJSONException(JSONException arg0, Object arg1) {}@Overridepublic void onMalformedURLException(MalformedURLException arg0,Object arg1) {}@Overridepublic void onNetworkUnavailableException(NetworkUnavailableException arg0, Object arg1) {}@Overridepublic void onSocketTimeoutException(SocketTimeoutException arg0,Object arg1) {}@Overridepublic 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(){};} 好了,到里代码部分已经写完,,只需要调用login(Activity context , QqLoginListener loginListener)方法就可以了。

有时,明知错了,却欲罢不能,

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行

相关文章:

你感兴趣的文章:

标签云: