package pantao.com.jindouyun.activity; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.telecom.TelecomManager; import android.telephony.TelephonyManager; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.UUID; import cn.sharesdk.framework.Platform; import cn.sharesdk.framework.PlatformActionListener; import cn.sharesdk.framework.ShareSDK; import cn.sharesdk.sina.weibo.SinaWeibo; import cn.sharesdk.tencent.qq.QQ; import cn.sharesdk.wechat.friends.Wechat; import pantao.com.jindouyun.R; import pantao.com.jindouyun.app.App; import pantao.com.jindouyun.net.HttpRequestUtils; import pantao.com.jindouyun.response.LoginResponseBean; import pantao.com.jindouyun.utils.JsonUtil; import pantao.com.jindouyun.utils.SharedPreferencesUtil; import pantao.com.jindouyun.utils.Site; /** * Created by KingJ on 2015/11/17. */ public class LoginActivity extends BaseActivity implements Handler.Callback, PlatformActionListener, View.OnClickListener { private ImageView QQ_ima, wx_ima, wb_ima; private static final int MSG_AUTH_CANCEL = 2; private static final int MSG_AUTH_ERROR = 3; private static final int MSG_AUTH_COMPLETE = 4; private Handler handler; private TextView register; private EditText usernameEt; private EditText passwordEt; private Button commit; private ImageButton forget;//忘记密码按钮 String id; private int statu;//状态码 private String iswrite;//是否验证状态 private String type;//第三方的类型 String name, url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ShareSDK.initSDK(this); QQ_ima = (ImageView) findViewById(R.id.qq_button); wx_ima = (ImageView) findViewById(R.id.wx_button); wb_ima = (ImageView) findViewById(R.id.wb_button); register = (TextView) findViewById(R.id.zc_button); usernameEt = (EditText) findViewById(R.id.login_name); passwordEt = (EditText) findViewById(R.id.login_code); commit = (Button) findViewById(R.id.login_button); forget = (ImageButton) findViewById(R.id.imageButton); forget.setOnClickListener(this); handler = new Handler(LoginActivity.this); QQ_ima.setOnClickListener(new tertius()); wx_ima.setOnClickListener(new tertius()); wb_ima.setOnClickListener(new tertius()); register.setOnClickListener(this); commit.setOnClickListener(this); } public void onComplete(Platform platform, int action, HashMap<String, Object> res) { if (action == Platform.ACTION_USER_INFOR) { Message msg = new Message(); msg.what = MSG_AUTH_COMPLETE; System.out.println(res); //用户id msg.obj = new Object[]{platform.getName(), res}; handler.sendMessage(msg); id = platform.getDb().getUserId(); System.out.println(platform.getDb().getUserIcon()); name = platform.getDb().getUserName(); url = platform.getDb().getUserIcon(); } //解析部分用户资料字段 } public void onError(Platform platform, int action, Throwable t) { if (action == Platform.ACTION_USER_INFOR) { handler.sendEmptyMessage(MSG_AUTH_ERROR); } t.printStackTrace(); } public void onCancel(Platform platform, int action) { if (action == Platform.ACTION_USER_INFOR) { handler.sendEmptyMessage(MSG_AUTH_CANCEL); } } public boolean handleMessage(Message msg) { hideProgressDialog(); switch (msg.what) { case MSG_AUTH_CANCEL: { //取消授权 Toast.makeText(this, R.string.auth_cancel, Toast.LENGTH_SHORT).show(); } break; case MSG_AUTH_COMPLETE: { //授权成功 Toast.makeText(this, R.string.auth_complete, Toast.LENGTH_SHORT).show(); Object[] objs = (Object[]) msg.obj; HashMap<String, Object> res = (HashMap<String, Object>) objs[1]; Log.i("god", res + ""); tertiary(); } break; } return false; } @Override public void onClick(View view) { switch (view.getId()) { case R.id.zc_button: Intent intent = new Intent(this, RegisterActivity.class); startActivity(intent); break; case R.id.login_button: String username = usernameEt.getText().toString(); String password = passwordEt.getText().toString(); if (username.equals("") || password.equals("")) { showToastMessage("请输入手机号和密码"); } else { showProgressDialog("提交中..."); String clientid = SharedPreferencesUtil.getString(App.getInstance(), App.clientId); System.out.println("login " + clientid); if ("".equals(clientid)) { final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); final String tmDevice, tmSerial, tmPhone, androidId; tmDevice = "" + tm.getDeviceId(); tmSerial = "" + tm.getSimSerialNumber(); androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode()); String uniqueId = deviceUuid.toString(); HttpRequestUtils.login(username, password, "1", uniqueId, getHandler()); } HttpRequestUtils.login(username, password, "1", clientid, getHandler()); } break; case R.id.imageButton: Intent intent1 = new Intent(this, ToUpdatePassWordActivity.class); startActivity(intent1); break; } } class tertius implements View.OnClickListener { @Override public void onClick(View v) { showProgressDialog("登录中..."); switch (v.getId()) { case R.id.qq_button: type = "qq"; Platform qzone = ShareSDK.getPlatform(QQ.NAME); authorize(qzone); break; case R.id.wx_button: type = "wx"; Platform wx = ShareSDK.getPlatform(Wechat.NAME); authorize(wx); break; case R.id.wb_button: type = "wb"; Platform sina = ShareSDK.getPlatform(SinaWeibo.NAME); authorize(sina); break; } } } private void authorize(Platform plat) { plat.setPlatformActionListener(LoginActivity.this); //关闭SSO授权 plat.SSOSetting(false); plat.showUser(null); } public void onResponse(Message msg) { super.onResponse(msg); hideProgressDialog(); String json = (String) msg.obj; System.out.println(json); LoginResponseBean loginResponseBean = JsonUtil.objectFromJson(json, LoginResponseBean.class); if (loginResponseBean == null) { showToastMessage("网络异常"); return; } statu = loginResponseBean.getStatus(); String uid = loginResponseBean.getUid(); String username = loginResponseBean.getUsername(); iswrite = loginResponseBean.getIswrite(); SharedPreferencesUtil.put(App.getInstance(), "uid", uid); SharedPreferencesUtil.put(App.getInstance(), "username", username); SharedPreferencesUtil.put(App.getInstance(), "password", passwordEt.getText().toString()); Intent intent = null; switch (statu) { case 1: showToastMessage("登录成功"); if ("1".equals(loginResponseBean.getIswrite())) { intent = new Intent(this, PersonalInfoCollectionActivity.class); } else if ("2".equals(loginResponseBean.getIswrite())) { intent = new Intent(this, MainActivity.class); } SharedPreferencesUtil.put(App.getInstance(), App.ifLogin, "1"); startActivity(intent); finish(); break; case 3: showToastMessage("参数错误"); break; case 4: showToastMessage("用户名或密码错误"); break; case 5: showToastMessage("第三方授权暂未开通"); break; } } private void tertiary() { final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); final String tmDevice, tmSerial, tmPhone, androidId; tmDevice = "" + tm.getDeviceId(); tmSerial = "" + tm.getSimSerialNumber(); androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode()); String uniqueId = deviceUuid.toString(); String clientid = SharedPreferencesUtil.getString(App.getInstance(), "clientid"); HttpRequestUtils.tertiary(type, id, 1 + "", uniqueId, name, url, getHandler()); System.out.println(type + "/" + id + "/" + uniqueId); System.out.println(name + "/" + "/" + url); } }
share SDK的qq,微信 新浪 的登陆
最新推荐文章于 2023-07-30 02:20:01 发布