充电桩app代码

UserCenterMoreActivity.java 32KB

    package com.electric.chargingpile.activity; import android.Manifest; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import androidx.appcompat.app.AlertDialog; import android.text.TextUtils; import android.util.Log; import android.view.Display; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.alibaba.fastjson.JSON; import com.electric.chargingpile.R; import com.electric.chargingpile.application.MainApplication; import com.electric.chargingpile.manager.ProfileManager; import com.electric.chargingpile.util.ActivityManagerApplication; import com.electric.chargingpile.util.BarColorUtil; import com.electric.chargingpile.util.DES3; import com.electric.chargingpile.util.ImageTools; import com.electric.chargingpile.util.JsonUtils; import com.electric.chargingpile.util.LoadingDialog; import com.electric.chargingpile.util.OkHttpUtil; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import com.umeng.analytics.MobclickAgent; import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.URLEncoder; import java.security.MessageDigest; import okhttp3.Call; import pub.devrel.easypermissions.EasyPermissions; public class UserCenterMoreActivity extends Activity implements View.OnClickListener { private static final String TAG = "UserCenterMoreActivity"; private RelativeLayout rl_recommend, rl_feedback, rl_about, rl_message, rl_update, rl_alter_password; private ImageView iv_back, iv_message, iv_fen; private String now_version, app_version; private TextView tv_exit; private String now_versionCode, now_versionName; private android.view.animation.Animation animation; private ImageView point, iv_message_f; private Socket socket; private String Token = ""; static String token = ""; public static long cha; LoadingDialog dialog; Dialog et_dialog; private Handler handler = new Handler() { // 主线程通过这个方法处理消息 @Override public void handleMessage(Message msg) { switch (msg.what) { // case 1: // try { // now_version = msg.obj.toString(); // // Log.e("version_now", now_version); // if (!app_version.equals(now_version)){ // dialogup(); // }else{ // Toast.makeText(UserCenterMoreActivity.this,"当前为最新版本"+now_version,Toast.LENGTH_SHORT).show(); // } // } catch (Exception e) { // e.printStackTrace(); // } // break; case 2: dialog.cancel(); Log.e(TAG, "handleMessage: " + msg.obj.toString()); String rtnCode1 = JsonUtils.getKeyResult(msg.obj.toString(), "rtnCode"); if (rtnCode1.equals("0")) { String data = JsonUtils.getKeyResult(msg.obj.toString(), "data"); String version = JsonUtils.getKeyResult(data, "version"); Log.e("!!!", data); try { com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(version); com.alibaba.fastjson.JSONObject version1 = jsonArray.getJSONObject(0); String android = JsonUtils.getKeyResult(version1.toJSONString(), "android"); System.out.println(android); now_versionCode = JsonUtils.getKeyResult(android, "versionCode"); now_versionName = JsonUtils.getKeyResult(android, "versionName"); } catch (Exception e) { e.printStackTrace(); } System.out.println("versionCode " + now_versionCode); System.out.println("versionName " + now_versionName); int new_versionCode = 0; if (now_versionCode != null) { new_versionCode = Integer.parseInt(now_versionCode); } // if (new_versionCode - getVersionCode(getApplication()) > 0) { dialogup(); } else { Toast.makeText(UserCenterMoreActivity.this, "当前为最新版本" + now_versionName, Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(UserCenterMoreActivity.this, "数据请求超时", Toast.LENGTH_SHORT).show(); } // dialogup(); break; case 11: try { JSONObject object = new JSONObject(msg.obj.toString()); String rtnCode = object.getString("rtnCode"); String rtnMsg = object.getString("rtnMsg"); Log.e("rtnMsg", rtnMsg); } catch (JSONException e) { e.printStackTrace(); } break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_center_more); BarColorUtil.initStatusBarColor(UserCenterMoreActivity.this); dialog = new LoadingDialog(this); dialog.setCanceledOnTouchOutside(false); initView(); } private void initView() { iv_message_f = (ImageView) findViewById(R.id.iv_message); point = (ImageView) findViewById(R.id.tv_one); animation = AnimationUtils.loadAnimation(UserCenterMoreActivity.this, R.anim.nn); rl_recommend = (RelativeLayout) findViewById(R.id.rl_recommend); rl_recommend.setOnClickListener(this); rl_feedback = (RelativeLayout) findViewById(R.id.rl_feedback); rl_feedback.setOnClickListener(this); rl_about = (RelativeLayout) findViewById(R.id.rl_about); rl_about.setOnClickListener(this); findViewById(R.id.rl_alter_password).setOnClickListener(this); // iv_fen = (ImageView) findViewById(R.id.imageView11); tv_exit = (TextView) findViewById(R.id.tv_exit); tv_exit.setOnClickListener(this); if (!MainApplication.isLogin()) { tv_exit.setVisibility(View.GONE); } rl_update = (RelativeLayout) findViewById(R.id.rl_update); rl_update.setOnClickListener(this); iv_back = (ImageView) findViewById(R.id.iv_back); iv_back.setOnClickListener(this); // } private void showDialog() { //自定义dialog LayoutInflater inflater = LayoutInflater.from(UserCenterMoreActivity.this); View view = inflater.inflate(R.layout.dialog_alter_password, null); // 对话框 et_dialog = new Dialog(UserCenterMoreActivity.this); et_dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0)); et_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); et_dialog.setCanceledOnTouchOutside(true); et_dialog.show(); // 设置宽度为屏幕的宽度 WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); WindowManager.LayoutParams lp = et_dialog.getWindow().getAttributes(); lp.width = (int) (display.getWidth()); // 设置宽度 et_dialog.getWindow().setAttributes(lp); et_dialog.getWindow().setContentView(view); TextView tv_sure = (TextView) view.findViewById(R.id.tv_sure);// 确认 TextView tv_cancel = (TextView) view.findViewById(R.id.tv_cancel);// 取消 final EditText et_alter_info = (EditText) view.findViewById(R.id.et_alter_info);// 电话 et_alter_info.setFocusable(true); tv_sure.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (TextUtils.isEmpty(et_alter_info.getText().toString())) { Toast.makeText(getApplicationContext(), "请填写原密码", Toast.LENGTH_SHORT).show(); } else { validatePassword(et_alter_info.getText().toString()); } } }); tv_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { et_dialog.cancel(); } }); } private void validatePassword(final String password) { dialog.show(); long appTime1 = System.currentTimeMillis() / 1000; long updatetime = appTime1 - MainMapActivity.cha - 6; String token = ""; try { token = URLEncoder.encode(DES3.encode(String.valueOf(updatetime))); } catch (Exception e) { e.printStackTrace(); } try { String url = MainApplication.url + "/zhannew/basic/web/index.php/tpmember/test?" + "password=" + URLEncoder.encode(password) + "&phone=" + MainApplication.userPhone + "&token=" + token; Log.d("url===", url); OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { } @Override public void onResponse(String response) { dialog.cancel(); String rtnCode = JsonUtils.getKeyResult(response, "rtnCode"); // Toast.makeText(getApplicationContext(),rtnCode,Toast.LENGTH_SHORT).show(); if (rtnCode.equals("00")) { et_dialog.cancel(); ActivityManagerApplication.addDestoryActivity(UserCenterMoreActivity.this, "UserCenterMoreActivity"); Intent intent = new Intent(getApplicationContext(), AlterPasswordActivity.class); intent.putExtra("old_password", password); startActivity(intent); } else if (rtnCode.equals("04")) { Toast.makeText(getApplicationContext(), "密码错误,请重新输入,如果忘记密码,可以在登录页面中点击忘记密码更改", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "验证超时", Toast.LENGTH_SHORT).show(); } } }); } catch (Exception e) { e.printStackTrace(); } } private void showInputMethod() { //自动弹出键盘 InputMethodManager inputManager = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); //强制隐藏Android输入法窗口 // inputManager.hideSoftInputFromWindow(edit.getWindowToken(),0); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.rl_alter_password: if (!MainApplication.isLogin()) { Toast.makeText(getApplication(), "请先登录", Toast.LENGTH_SHORT).show(); startActivity(new Intent(getApplication(), LoginActivity.class)); } else { showDialog(); new Handler().postDelayed(new Runnable() { @Override public void run() { showInputMethod(); } }, 100); } break; case R.id.rl_recommend: if (MainApplication.isLogin()) { startActivity(new Intent(this, UserInfoActivity.class)); } else { Toast.makeText(getApplication(), "请先登录", Toast.LENGTH_SHORT).show(); startActivity(new Intent(getApplication(), LoginActivity.class)); } break; case R.id.rl_feedback: Intent intentt = new Intent(getApplication(), MyWebViewActivity.class); intentt.putExtra("url", "http://evcharge.cc/cdz/newcharge-help.html"); startActivity(intentt); break; case R.id.rl_about: startActivity(new Intent(getApplication(), AboutActivity.class)); break; case R.id.rl_update: // getVersion(); getVersionCode(getApplication()); eteinit("{\"fun\":\"timer\"}"); dialog.show(); // appVersion(); // Animation animation = AnimationUtils.loadAnimation(getApplication(), R.anim.gradually); // iv_fen.startAnimation(animation); break; case R.id.iv_back: finish(); break; case R.id.tv_exit: AlertDialog.Builder builder = new AlertDialog.Builder(UserCenterMoreActivity.this); builder.setTitle("提示"); builder.setMessage("确认退出当前的账号?"); builder.setCancelable(false); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // MobclickAgent.onProfileSignOff(); try { sendLoginStatus(); } catch (Exception e) { e.printStackTrace(); } deleteUserInfo(); SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Activity.MODE_PRIVATE); sharedPreferences.edit().clear(); tv_exit.setVisibility(View.GONE); finish(); } }); builder.setNegativeButton("取消", null); builder.create().show(); // new com.electric.chargingpile.view.AlertDialog(UserCenterMoreActivity.this).builder() // .setMsg("确定要退出?") // .setPositiveButton("确定", new View.OnClickListener() { // @Override // public void onClick(View v) { // MobclickAgent.onProfileSignOff(); // try { // sendLoginStatus(); // } catch (Exception e) { // e.printStackTrace(); // } // // deleteUserInfo(); // SharedPreferences sharedPreferences = getSharedPreferences("userInfo", // Activity.MODE_PRIVATE); // sharedPreferences.edit().clear(); // // tv_exit.setVisibility(View.GONE); // finish(); // } // }).setNegativeButton("取消", new View.OnClickListener() { // @Override // public void onClick(View v) { // // } // }).show(); break; } } private void deleteUserInfo() { //保存用户id MainApplication.userId = ""; ProfileManager.getInstance().setUserid(getApplicationContext(), ""); //保存用户昵称 MainApplication.userNickname = ""; ProfileManager.getInstance().setNickname(getApplicationContext(), ""); //保存用户手机号 MainApplication.userPhone = ""; ProfileManager.getInstance().setUsername(getApplicationContext(), ""); //保存用户头像 MainApplication.userIcon = ""; ProfileManager.getInstance().setUsericon(getApplicationContext(), ""); //保存用户车型 MainApplication.userCar = ""; ProfileManager.getInstance().setUsercar(getApplicationContext(), ""); //保存用户密码 MainApplication.userPassword = ""; ProfileManager.getInstance().setKeyUserpassword(getApplicationContext(), ""); if (isPermissionOK()) { if (ImageTools.findPhotoFromSDCard(MainApplication.storePath, "user_icon")) { ImageTools.deletePhotoAtPathAndName(MainApplication.storePath, "user_icon"); } } } private boolean isPermissionOK() { return EasyPermissions.hasPermissions(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE ); } //发送用户退出状态接口 private void sendLoginStatus() throws Exception { long appTime1 = System.currentTimeMillis() / 1000; Log.i("appTime(long)---", appTime1 + ""); long updatetime = appTime1 - MainMapActivity.cha - 3; Log.i("updatetime(long)---", updatetime + ""); Log.i("cha---", MainMapActivity.cha + ""); String token = String.valueOf(updatetime); String encode_token = DES3.encode(token); String replace = URLEncoder.encode(encode_token, "UTF-8"); String url = MainApplication.url + "/zhannew/basic/web/index.php/tpmember/logout?phone=" + MainApplication.userPhone + "&password=" + URLEncoder.encode(MainApplication.userPassword, "UTF-8") + "&token=" + replace + "&imei=" + "android_" + MainApplication.imei + "&registration_id=" + MainApplication.getInstance().getPushID(); Log.i("token解密:", DES3.decode(encode_token)); OkHttpUtils.get() .url(url) .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e) { } @Override public void onResponse(String response) { Log.e("exitLogin===", response); } }); } public void eteinit(final String params) { new Thread(new Runnable() { @Override public void run() { try { // 创建Socket // socket = new Socket("192.168.1.110",54321); socket = new Socket("cdz.evcharge.cc", 9503); // IP:10.14.114.127,端口54321 // 向服务器发送消息 PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); out.println(params); // out.println("{\"fun\":\"getcity\"}"); // 接收来自服务器的消息 BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream())); // Message message = handle.obtainMessage(); // message.obj = line; // message.arg1 = 1; // handle.sendMessage(message); String msg = br.readLine(); Log.d("dddddss", msg); // System.out.print("www:"+qqq); // Log.d("qqq",key); // if (msg != null) { // Message mes = new Message(); // mes.obj = msg; // mes.what = 2; // hand.sendMessage(mes); // } // Message message = handler.obtainMessage(); // message.obj = line; // message.arg1 = 17; // handler.sendMessage(message); token = msg; int time = (int) (System.currentTimeMillis() / 1000); // cha = String.valueOf(time - Integer.parseInt(msg)); cha = time - Integer.parseInt(msg); Token = getMD5(String.valueOf((System.currentTimeMillis() / 1000 - cha) / 10) + "qwerty"); Log.d("11111", "{\"fun\":\"init\",\"timer\":" + "\"" + Token + "\"" + "}"); ete2("{\"fun\":\"init\",\"timer\":" + "\"" + Token + "\"" + "}"); // 关闭流 // out.close(); // br.close(); // // 关闭Socket // socket.close(); } catch (Exception e) { } } }).start(); } public void ete2(final String params) { new Thread(new Runnable() { @Override public void run() { try { // 创建Socket // socket = new Socket("192.168.1.110",54321); socket = new Socket("cdz.evcharge.cc", 9503); // IP:10.14.114.127,端口54321 // 向服务器发送消息 PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); out.println(params); // out.println("{\"fun\":\"getcity\"}"); // 接收来自服务器的消息 BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream())); // Message message = handle.obtainMessage(); // message.obj = line; // message.arg1 = 1; // handle.sendMessage(message); String msg = br.readLine(); if (msg != null) { Message mes = new Message(); mes.obj = msg; mes.what = 2; handler.sendMessage(mes); } Log.d("dddddmm", msg); System.out.print("qwert:" + msg); Toast.makeText(getApplication(), msg, Toast.LENGTH_SHORT).show(); // String data = JsonUtils.getKeyResult(msg, "data"); // String version = JsonUtils.getKeyResult(data, "version"); // // com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(version); // com.alibaba.fastjson.JSONObject version1=jsonArray.getJSONObject(0); // String android = JsonUtils.getKeyResult(version1.toJSONString(), "android"); // System.out.println(android); // // String versionCode = JsonUtils.getKeyResult(android, "versionCode"); // String versionName = JsonUtils.getKeyResult(android, "versionName"); // // System.out.println("versionCode " + versionCode); // System.out.println("versionName " + versionName); // out.close(); // br.close(); // // 关闭Socket // socket.close(); } catch (Exception e) { } } }).start(); } private void shareGetPoints() { new Thread(new Runnable() { @Override public void run() { try { String replace = ""; long appTime1 = System.currentTimeMillis() / 1000; Log.i("appTime(long)---", appTime1 + ""); long updatetime = appTime1 - MainMapActivity.cha - 1; String token = String.valueOf(updatetime); try { replace = URLEncoder.encode(DES3.encode(token)); } catch (Exception e) { e.printStackTrace(); } //String url = mParentContext.getString(R.string.ip_url) + "/resource/book?userId=" + userid; String url = MainApplication.url + "/zhannew/basic/web/index.php/zhanshareinfo/add?user_id=" + MainApplication.userId + "&token=" + replace; submit(url); } catch (Exception e) { e.printStackTrace(); } } }).start(); } private void submit(String sms) { Log.e("url", sms); Request request = new Request.Builder().url(sms).build(); Response response = null; try { if (request == null) { Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); return; } response = OkHttpUtil.execute(request); if (response.code() == 200) { String json = ""; try { json = response.body().string(); Message msg = new Message(); msg.obj = json; msg.what = 11; handler.sendMessage(msg); Log.e("url", json); // Log.i("token解密:", DES3.decode(encode_token)); } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); } } } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); } } public void getVersion() { try { PackageManager manager = getApplication().getPackageManager(); PackageInfo info = manager.getPackageInfo(getApplication().getPackageName(), 0); app_version = info.versionName; // return this.getString(R.string.version_name) + version; Log.e("version", app_version); } catch (Exception e) { e.printStackTrace(); // return this.getString(R.string.can_not_find_version_name); } } private void appVersion() { new Thread(new Runnable() { @Override public void run() { try { String url = null; url = MainApplication.url + "/zhannew/basic/web/index.php/zhanlist/getversion2"; getVersion(url); } catch (Exception e) { e.printStackTrace(); } } }).start(); } public static int getVersionCode(Context context)//获取版本号(内部识别号) { try { PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); Log.e("versionCode", pi.versionCode + ""); return pi.versionCode; } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return 0; } } private void dialogup() { // if (!app_version.equals(now_version)){ new com.electric.chargingpile.view.AlertDialog(UserCenterMoreActivity.this).builder() .setTitle("温馨提示") .setMsg("老板,这小子又发" + now_versionName + "版本了,要不要更新下?") .setPositiveButton("要,马上要", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://cdz.evcharge.cc/app/app.apk"); intent.setData(content_url); startActivity(intent); } }).setNegativeButton("先退下", new View.OnClickListener() { @Override public void onClick(View v) { } }).show(); } // } private void getVersion(String sms) { Log.e("url", sms); Request request = new Request.Builder().url(sms).build(); Response response = null; try { if (request == null) { Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); return; } response = OkHttpUtil.execute(request); if (response.code() == 200) { String json = ""; try { json = response.body().string(); Message msg = new Message(); msg.obj = json; msg.what = 1; handler.sendMessage(msg); Log.e("url", json); // Log.i("token解密:", DES3.decode(encode_token)); } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); } } } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = 3; handler.sendMessage(msg); } } @Override protected void onResume() { super.onResume(); if (MainApplication.isLogin()) { getFeedBackNum(); } MobclickAgent.onResume(this); } public static String getMD5(String content) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(content.getBytes()); return getHashString(digest); } catch (Exception e) { } return null; } private static String getHashString(MessageDigest digest) { StringBuilder builder = new StringBuilder(); for (byte b : digest.digest()) { builder.append(Integer.toHexString((b >> 4) & 0xf)); builder.append(Integer.toHexString(b & 0xf)); } return builder.toString().toLowerCase(); } private void getFeedBackNum() { String url = MainApplication.url + "/zhannew/basic/web/index.php/advice/unread?user_id=" + MainApplication.userId; OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { } @Override public void onResponse(String response) { Log.e(TAG, "onResponse: response=" + response); String rtnCode = JsonUtils.getKeyResult(response, "rtnCode"); if (rtnCode.equals("01")) { String data = JsonUtils.getKeyResult(response, "data"); if (data.equals("0")) { iv_message_f.setVisibility(View.GONE); } else { iv_message_f.setVisibility(View.VISIBLE); } } } }); } @Override protected void onPause() { super.onPause(); MobclickAgent.onPause(this); } }