充电桩app代码

MainScanActivity.java 55KB

    package com.electric.chargingpile.activity; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.graphics.Paint; import android.hardware.Camera; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.v4.view.animation.LinearOutSlowInInterpolator; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.blankj.utilcode.util.LogUtils; import com.electric.chargingpile.R; import com.electric.chargingpile.application.MainApplication; import com.electric.chargingpile.data.OperatorPicBean; import com.electric.chargingpile.manager.ProfileManager; import com.electric.chargingpile.util.DES3; import com.electric.chargingpile.util.JsonUtils; import com.electric.chargingpile.util.LoadingDialog; import com.electric.chargingpile.util.Md5Util; import com.electric.chargingpile.util.ToastUtil; import com.electric.chargingpile.view.AlertDialogTwo; import com.electric.chargingpile.view.CircleProgressBar; import com.electric.chargingpile.view.OperatorDialog; import com.electric.chargingpile.view.WaveView; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.tencent.bugly.crashreport.CrashReport; import com.umeng.analytics.MobclickAgent; import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.TimeZone; import java.util.Timer; import java.util.TimerTask; import okhttp3.Call; import pub.devrel.easypermissions.AfterPermissionGranted; import pub.devrel.easypermissions.AppSettingsDialog; import pub.devrel.easypermissions.EasyPermissions; public class MainScanActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks { private static final String TAG = "MainScanActivity"; private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; public static String tag; public static int no = 0; LoadingDialog dialog; private Activity activity; int j; SimpleDateFormat formatter; private LinearLayout ll_tab_our, ll_tab_index, ll_tab_find, ll_yue, ll_1; private RelativeLayout rl_scan; private LinearLayout ll_charging_status, tab_qa; private ImageView iv_our, iv_scan, iv_questionmark, iv_find, iv_main, iv_screening; private long exitTime = 0; private String money; private String free_status; private String tellist; private ArrayList<ImageView> list_iv; private ArrayList<OperatorPicBean> operatorPicBeen; private TextView tv_more, tv_msg_num, tv_time, tv_cost, tv_zhuang_num, tv_chongdianliang, tv_go, tv_yue, tv_recharge, tv_progress, tv_screening; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { // case 1: // //操作界面 // hw.setText(msg.obj.toString()); // // break; case 2: // tv_time.setText(msg.obj.toString()); break; } } }; private CircleProgressBar bar; private Timer mTimer; private int i = 0; private TextView tv_help; private String zhan_idc = ""; private int z = 0; private int msgOne = 0; private Timer timer; private AlertDialogTwo alertDialogTwo; private WaveView wave_view; private static final int RC_CAMERA_PERM = 123; private static final int RC_TELL_PERM = 124; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_scan); // LogUtils.e(MainApplication.userPassword); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); activity = this; dialog = new LoadingDialog(this); dialog.setCanceledOnTouchOutside(false); tellist = ProfileManager.getInstance().getKeyTel(getApplicationContext()); initViews(); getOperatorList(); formatter = new SimpleDateFormat("HH:mm:ss");//初始化Formatter的转换格式。 formatter.setTimeZone(TimeZone.getTimeZone("GMT+00:00")); // start timer task } private void initViews() { tv_more = (TextView) findViewById(R.id.tv_more); mTimer = new Timer(); alertDialogTwo = new AlertDialogTwo(MainScanActivity.this); wave_view = (WaveView) findViewById(R.id.wave_view); wave_view.setDuration(4000); wave_view.setStyle(Paint.Style.FILL); wave_view.setColor(getResources().getColor(R.color.lvse)); wave_view.setInterpolator(new LinearOutSlowInInterpolator()); wave_view.start(); // wave_view.postDelayed(new Runnable() { // @Override // public void run() { // wave_view.stop(); // } // }, 10000); tab_qa = (LinearLayout) findViewById(R.id.tab_qa); tab_qa.setOnClickListener(this); tv_help = (TextView) findViewById(R.id.tv_help); tv_help.setOnClickListener(this); ll_tab_index = (LinearLayout) findViewById(R.id.ll_tab_index); ll_1 = (LinearLayout) findViewById(R.id.ll_1); ll_1.setOnClickListener(this); ll_tab_index.setOnClickListener(this); ll_tab_our = (LinearLayout) findViewById(R.id.ll_tab_our); ll_tab_our.setOnClickListener(this); ll_tab_find = (LinearLayout) findViewById(R.id.ll_tab_find); ll_tab_find.setOnClickListener(this); iv_scan = (ImageView) findViewById(R.id.iv_scan); iv_scan.setOnClickListener(this); tv_time = (TextView) findViewById(R.id.tv_time); tv_msg_num = (TextView) findViewById(R.id.tv_msg_num); tv_cost = (TextView) findViewById(R.id.tv_cost); tv_zhuang_num = (TextView) findViewById(R.id.tv_zhuang_num); tv_progress = (TextView) findViewById(R.id.tv_jincheng); tv_chongdianliang = (TextView) findViewById(R.id.tv_chongdianliang); tv_go = (TextView) findViewById(R.id.tv_go); tv_go.setOnClickListener(this); tv_yue = (TextView) findViewById(R.id.tv_yue); tv_recharge = (TextView) findViewById(R.id.tv_recharge); tv_recharge.setOnClickListener(this); iv_questionmark = (ImageView) findViewById(R.id.iv_questionmark); iv_questionmark.setOnClickListener(this); ll_yue = (LinearLayout) findViewById(R.id.ll_yue); // tv_go.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // startActivity(new Intent(getApplication(), ChargingStatusActivity.class)); // } // }); ll_charging_status = (LinearLayout) findViewById(R.id.ll_charging_status); rl_scan = (RelativeLayout) findViewById(R.id.rl_scan); // if (tag.equals("1")){ // ll_scan.setVisibility(View.GONE); // rl_charging_status.setVisibility(View.VISIBLE); //// setTimerTask(); // }else { // ll_scan.setVisibility(View.VISIBLE); // rl_charging_status.setVisibility(View.GONE); // } iv_our = (ImageView) findViewById(R.id.iv_our); iv_find = (ImageView) findViewById(R.id.iv_find); iv_main = (ImageView) findViewById(R.id.iv_main); iv_screening = (ImageView) findViewById(R.id.iv_screening); tv_screening = (TextView) findViewById(R.id.tv_screening); // if (MainMapActivity.have_message == 0 && MainMapActivity.have_pinglun == 0) { // if (MainApplication.festival_time.equals("1")){ // iv_our.setImageResource(R.drawable.icon_cj4); // }else if (MainApplication.festival_time.equals("2")){ // iv_our.setImageResource(R.drawable.icon_yx4); // }else { // iv_our.setImageResource(R.drawable.tab_our); // } // } else if (MainMapActivity.have_message == 1 || MainMapActivity.have_pinglun != 0) { // if (MainApplication.festival_time.equals("1")){ // iv_our.setImageResource(R.drawable.icon_cjh4); // }else if (MainApplication.festival_time.equals("2")){ // iv_our.setImageResource(R.drawable.icon_yxh4); // }else { // iv_our.setImageResource(R.drawable.tab_our_h); // } // } // // if (MainApplication.festival_time.equals("1")){ // iv_screening.setImageResource(R.drawable.icon_cj2); // iv_main.setImageResource(R.drawable.icon_cj1); // iv_find.setImageResource(R.drawable.icon_cj3); // tv_screening.setTextColor(getResources().getColor(R.color.jieri)); // }else if (MainApplication.festival_time.equals("2")){ // iv_screening.setImageResource(R.drawable.icon_yx2); // iv_main.setImageResource(R.drawable.icon_yx1); // iv_find.setImageResource(R.drawable.icon_yx3); // tv_screening.setTextColor(getResources().getColor(R.color.jieri)); // } } private void getUserIntegral() { String replace = null; try { long appTime1 = System.currentTimeMillis() / 1000; long updatetime = appTime1 - MainMapActivity.cha - 3; String token = String.valueOf(updatetime); String encode_token = DES3.encode(token); replace = URLEncoder.encode(encode_token); } catch (Exception e) { e.printStackTrace(); } String url = MainApplication.url + "/zhannew/basic/web/index.php/member/get-score?id=" + MainApplication.userId + "&phone=" + MainApplication.userPhone + "&password=" + URLEncoder.encode(MainApplication.userPassword) + "&token=" + replace; 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); String rtnCode = JsonUtils.getKeyResult(response, "rtnCode"); if (null != rtnCode && rtnCode.equals("01")) { String rtnMsg = JsonUtils.getKeyResult(response, "rtnMsg"); money = JsonUtils.getKeyResult(rtnMsg, "money"); free_status = JsonUtils.getKeyResult(rtnMsg, "free_status"); if (free_status.equals("0")) { tv_yue.setText("余额:" + money + "元"); ll_yue.setVisibility(View.VISIBLE); } else { ll_yue.setVisibility(View.INVISIBLE); } } else { ProfileManager.getInstance().setUsername(getApplicationContext(), ""); MainApplication.userPhone = ""; Toast.makeText(getApplicationContext(), "登录已失效,请重新登录", Toast.LENGTH_SHORT).show(); startActivity(new Intent(getApplicationContext(), LoginActivity.class)); } } }); } private void showCallDialog(final String s) { alertDialogTwo.builder() .setMsg(s) .setPositiveButton("联系客服", new View.OnClickListener() { @Override public void onClick(View v) { tellTask(); } }).setNegativeButton("取消", new View.OnClickListener() { @Override public void onClick(View v) { } }).show(); } private void ifTimeout() { dialog.show(); String url = MainApplication.url + "/zhannew/basic/web/index.php/special/orderstatus_v2?user_id=" + MainApplication.userId + "&password=" + MainApplication.userPassword; OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { dialog.cancel(); ToastUtil.showToast(getApplicationContext(), "网络异常,请检查您的网络连接", Toast.LENGTH_SHORT); CrashReport.postCatchedException(e); } @Override public void onResponse(String response) { LogUtils.e(response); String code = JsonUtils.getKeyResult(response, "code"); dialog.cancel(); if (code.equals("200")) { limitStart(); } else if (code.equals("300")) { Intent intent = new Intent(getApplication(), ChargingStatusActivity.class); intent.putExtra("type", "tld"); startActivity(intent); } else { ToastUtil.showToast(getApplicationContext(), "您有一笔订单正在启动中,请稍后再试", Toast.LENGTH_SHORT); } } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_help: MobclickAgent.onEvent(getApplicationContext(), "0604"); Intent intentt = new Intent(getApplication(), MyWebViewActivity.class); // intent3.putExtra("url", "http://m.wz.qichecdn.com/h5/vehicle/List?openid="+MainApplication.userId+"&platformid=1hz5sM5_orY"+"&userid="+MainApplication.userId); intentt.putExtra("url", "http://evcharge.cc/cdz/newcharge-help.html"); startActivity(intentt); break; case R.id.ll_tab_index: // Intent intent = new Intent(getApplication(), MainMapActivity.class); // intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); // startActivity(intent); MobclickAgent.onEvent(getApplicationContext(), "0118"); finish(); overridePendingTransition(0, 0); break; case R.id.ll_tab_our: MobclickAgent.onEvent(getApplicationContext(), "0106"); Intent intent1 = new Intent(getApplication(), UserCenterActivity.class); intent1.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(intent1); finish(); overridePendingTransition(0, 0); break; case R.id.ll_tab_find: MobclickAgent.onEvent(getApplicationContext(), "0105"); Intent intent5 = new Intent(getApplication(), FindActivity.class); intent5.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(intent5); finish(); overridePendingTransition(0, 0); break; case R.id.tab_qa: MobclickAgent.onEvent(getApplicationContext(), "0103"); Intent intent = new Intent(getApplication(), ChatActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(intent); finish(); overridePendingTransition(0, 0); break; case R.id.iv_scan: if (!MainApplication.isLogin()) { startActivity(new Intent(getApplication(), LoginActivity.class)); } else { MobclickAgent.onEvent(getApplicationContext(), "0602"); // startActivity(new Intent(getApplicationContext(),TLDLoadingActivity.class)); cameraTask(); // ifTimeout(); } break; case R.id.tv_recharge: MobclickAgent.onEvent(getApplicationContext(), "0603"); startActivity(new Intent(getApplicationContext(), AccountRechargeActivity.class)); break; case R.id.tv_go: startActivity(new Intent(getApplication(), ChargingStatusActivity.class)); // if (mTimer != null) { // mTimer.cancel(); // mTimer = null; // } // if (timer != null) { // timer.cancel(); // } z = 0; break; case R.id.iv_questionmark: Intent intenttt = new Intent(getApplication(), MyWebViewActivity.class); String s = null; try { s = "http://evcharge.cc/activity/no-pwd-pay-info.html"; } catch (Exception e) { e.printStackTrace(); } intenttt.putExtra("url", s); // intenttt.putExtra("tag", "3"); startActivity(intenttt); break; case R.id.ll_1: if (ll_1.getVisibility() == View.VISIBLE) { MobclickAgent.onEvent(getApplicationContext(), "0605"); new OperatorDialog(MainScanActivity.this, MainScanActivity.this, operatorPicBeen).builder().setCancelable(true).show(); } break; default: break; } } private void limitStart() { dialog.show(); String url = MainApplication.url + "/zhannew/basic/web/index.php/free/startlimit_v2?user_id=" + MainApplication.userId + "&password=" + MainApplication.userPassword; LogUtils.e(url); OkHttpUtils.get().url(url).build().connTimeOut(10000).execute(new StringCallback() { @Override public void onError(Call call, Exception e) { ToastUtil.showToast(getApplicationContext(), "网络异常,请检查您的网络连接", Toast.LENGTH_SHORT); CrashReport.postCatchedException(e); } @Override public void onResponse(String response) { LogUtils.e(response); if (activity != null && !activity.isFinishing()) { dialog.cancel(); } String code = JsonUtils.getKeyResult(response, "code"); if ("200".equals(code)) { Intent iintent = new Intent(getApplicationContext(), com.google.zxing.client.android.CaptureActivity.class); iintent.putExtra("url", MainApplication.url); iintent.putExtra("user_id", MainApplication.userId); iintent.putExtra("user_password", MainApplication.userPassword); iintent.putExtra("cha", MainMapActivity.cha); startActivity(iintent); } else if (code.equals("2000")) { final String error_message = JsonUtils.getKeyResult(response, "error_message"); // Toast.makeText(getApplicationContext(),error_message,Toast.LENGTH_SHORT).show(); String data = JsonUtils.getKeyResult(response, "data"); final String user_id = JsonUtils.getKeyResult(data, "user_id"); final String order_id = JsonUtils.getKeyResult(data, "order_id"); final String money = JsonUtils.getKeyResult(data, "money"); // final String time = JsonUtils.getKeyResult(data,"time"); // final String zhanName = JsonUtils.getKeyResult(data,"zhan_name"); new Handler().postDelayed(new Runnable() { @Override public void run() { alertDialogTwo.builder() .setTitle("温馨提示") .setMsg(error_message) .setPositiveButton("结算", new View.OnClickListener() { @Override public void onClick(View v) { // LogUtils.e("free_status="+free_status); if (free_status.equals("0")) { Intent intent = new Intent(getApplicationContext(), NonSecretSeettingActivity.class); intent.putExtra("user_id", user_id); intent.putExtra("order_id", order_id); intent.putExtra("money", money); intent.putExtra("tag", "1"); Uri uri = Uri.parse("chongdianzhuang://"); intent.setData(uri); startActivity(intent); } else { dialog.show(); String url = MainApplication.url + "/zhannew/basic/web/index.php/free/pay?user_id=" + user_id + "&money=" + money + "&third_id=" + order_id; OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { if (activity != null && !activity.isFinishing()) { dialog.cancel(); } ToastUtil.showToast(getApplicationContext(), "结算失败,请检查您的支付宝账户", Toast.LENGTH_SHORT); } @Override public void onResponse(String response) { if (activity != null && !activity.isFinishing()) { dialog.cancel(); } // LogUtils.e(response); String code = JsonUtils.getKeyResult(response, "code"); if (code.equals("200")) { ToastUtil.showToast(getApplicationContext(), "结算订单成功", Toast.LENGTH_SHORT); } else { ToastUtil.showToast(getApplicationContext(), "支付宝扣款失败,请确保您的支付宝账号内有足够金额", Toast.LENGTH_SHORT); } } }); } // Intent intent = new Intent(getApplicationContext(), AccountRechargeActivity.class); // startActivity(intent); } }).setNegativeButton("取消", new View.OnClickListener() { @Override public void onClick(View v) { } }).show(); } }, 100); } else if (code.equals("600")) { String error_message = JsonUtils.getKeyResult(response, "error_message"); if (activity != null && !activity.isFinishing()) { showCallDialog(error_message); } } else if (code.equals("104")) { new Handler().postDelayed(new Runnable() { @Override public void run() { alertDialogTwo.builder() .setMsg("账户余额不足,请前往充值或开通免密支付") .setPositiveButton("去充值", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), AccountRechargeActivity.class); startActivity(intent); } }).setNegativeButton("开通免密支付", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), NonSecretSeettingActivity.class); Uri uri = Uri.parse("chongdianzhuang://"); intent.setData(uri); startActivity(intent); // startActivity(new Intent(getApplicationContext(),NonSecretSeettingActivity.class)); } }).show(); } }, 200); } else { String error_message = JsonUtils.getKeyResult(response, "error_message"); ToastUtil.showToast(getApplicationContext(), error_message, Toast.LENGTH_SHORT); } } }); } private void setTimerTasks() { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { // i++; j++; // long ms = i * 1000; long sm = 1000 * j; // String hms = formatter.format(ms); String smh = formatter.format(sm); // Message msg = new Message(); // msg.obj = hms; // msg.what = 1; // mHandler.sendMessage(msg);//向Handler发送消息, Message message = new Message(); message.obj = smh; message.what = 2; mHandler.sendMessage(message); } }, 0, 1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { Log.e(TAG, "onKeyDown: ----------------------------"); // ActivityManagerApplication.destoryActivity("MainMapActivity"); if (MainMapActivity.mainMapActivity != null) { MainMapActivity.mainMapActivity.finish(); } SharedPreferences mySharedPreferences = getSharedPreferences("showdialog", Activity.MODE_PRIVATE); SharedPreferences.Editor editor1 = mySharedPreferences.edit(); editor1.clear(); finish(); ProfileManager.getInstance().setSearchAddress(this, ""); android.os.Process.killProcess(android.os.Process.myPid()); } return true; } return super.onKeyDown(keyCode, event); } private void setTimerTask() { if (mTimer != null) { mTimer.schedule(new TimerTask() { @Override public void run() { i++; chargingStatus(); } }, 1000, 10000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */); } } private void chargingStatus() { long appTime1 = System.currentTimeMillis() / 1000; long updatetime = appTime1 - MainMapActivity.cha - 3; String token = String.valueOf(updatetime); String url = MainApplication.url + "/zhannew/basic/web/index.php/xxapi/status_v2" + "?supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&password=" + MainApplication.userPassword + "&ver=1.0&sign=" + Md5Util.md5("password=" + MainApplication.userPassword + "&supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&key=661f9efdcb4f46fe7ab5f2e78a705a2a"); Log.e("urlstatus", url); OkHttpUtils.get() .url(url) .build() .connTimeOut(10000) .readTimeOut(10000) .execute(new StringCallback() { @Override public void onError(Call call, Exception e) { ToastUtil.showToast(getApplicationContext(), "网络异常,请检查您的网络连接", Toast.LENGTH_SHORT); CrashReport.postCatchedException(e); } @Override public void onResponse(String response) { Log.e("status===", response); String code = JsonUtils.getKeyResult(response, "code"); if (null != code) { if (code.equals("200")) { String data = JsonUtils.getKeyResult(response, "data"); String status = JsonUtils.getKeyResult(data, "status"); String type = JsonUtils.getKeyResult(data, "type"); zhan_idc = JsonUtils.getKeyResult(data, "zhanIDC"); if (null != status) { if (status.equals("1")) { //充电类型 0交流 1直流 String chargeType = JsonUtils.getKeyResult(data, "chargeType"); String name = JsonUtils.getKeyResult(data, "name"); if (name != null) { if (name.equals("")) { String stubId = JsonUtils.getKeyResult(data, "stubId"); tv_zhuang_num.setText(stubId); } else { tv_zhuang_num.setText(name); } } //桩编号 // String stubId = JsonUtils.getKeyResult(data, "stubId"); // tv_zhuang_num.setText(stubId); //充电金额 String feeTotal = JsonUtils.getKeyResult(data, "feeTotal"); if (feeTotal != null) { if (feeTotal.equals("")) { tv_cost.setText("--"); } else { tv_cost.setText(feeTotal); } } //充电电流 // String current = JsonUtils.getKeyResult(data, "current"); // if (current.equals("")){ // tv_dianliu.setText("--"); // }else { // tv_dianliu.setText(current); // } //充电电压 // String voltage = JsonUtils.getKeyResult(data, "voltage"); // if (voltage.equals("")){ // tv_dianya.setText("--"); // }else { // tv_dianya.setText(voltage); // } //百分比 if (type != null) { // if (type.equals("xx")) { String soc = JsonUtils.getKeyResult(data, "soc"); if (chargeType.equals("1")) { if (!soc.equals("")) { tv_progress.setText(soc + "%"); // tv_jindu.setText(soc+"%"); // float f = 0; // try { // f = Float.parseFloat(soc) * 0.01f; // Log.e("111", f + ""); // } catch (NumberFormatException e) { // e.printStackTrace(); // } // // // bar.setProgress(f, 7000); } else { // tv_jindu.setText("--"); } } else if (chargeType.equals("0")) { // tv_jindu.setText("--"); } // } } //充电时长(s) // String timeCharge = JsonUtils.getKeyResult(data, "timeCharge"); // if (timeCharge.equals("")){ // tv_time.setText("--:--:--"); // }else { // tv_time.setText(getStandardTime(Long.parseLong(timeCharge))); // } if (z == 0) { String timeCharge = JsonUtils.getKeyResult(data, "timeCharge"); if (timeCharge != null) { if (timeCharge.equals("")) { tv_time.setText("--:--:--"); } else { j = Integer.parseInt(timeCharge); new Thread(new Runnable() { @Override public void run() { setTimerTasks(); } }).start(); z++; } } } //充电电量 String power = JsonUtils.getKeyResult(data, "power"); if (power != null) { tv_chongdianliang.setText(power); } } else if (status.equals("9")) { no = 1; chargingEnd(); if (mTimer != null) { mTimer.cancel(); mTimer = null; } if (null != timer) { timer.cancel(); } } } } else if (code.equals("110")) { // chargingEnd(); if (null != mTimer) { mTimer.cancel(); mTimer = null; } if (null != timer) { timer.cancel(); timer = null; } rl_scan.setVisibility(View.VISIBLE); ll_charging_status.setVisibility(View.GONE); ToastUtil.showToast(getApplicationContext(), "本次充电已结束", Toast.LENGTH_SHORT); MainApplication.isAppStart = false; ProfileManager.getInstance().setAppStart(getApplicationContext(), MainApplication.isAppStart); } } } }); } private void chargingEnd() { // dialog.show(); long appTime1 = System.currentTimeMillis() / 1000; long updatetime = appTime1 - MainMapActivity.cha - 3; String token = String.valueOf(updatetime); String url = MainApplication.url + "/zhannew/basic/web/index.php/xxapi/end" + "?supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&ver=1.0&sign=" + Md5Util.md5("supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&key=661f9efdcb4f46fe7ab5f2e78a705a2a"); Log.e("urlend===", url); OkHttpUtils.get() .url(url) .build() .connTimeOut(10000) .readTimeOut(10000) .execute(new StringCallback() { @Override public void onError(Call call, Exception e) { Toast.makeText(getApplicationContext(), "网络不给力", Toast.LENGTH_SHORT).show(); // dialog.cancel(); } @Override public void onResponse(String response) { // Log.e("end===",response); // dialog.cancel(); String code = JsonUtils.getKeyResult(response, "code"); // String error_message = JsonUtils.getKeyResult(response, "error_message"); // Log.e("code_end",code); // Toast.makeText(getApplicationContext(),code,Toast.LENGTH_SHORT).show(); if (code.equals("200")) { // String data = JsonUtils.getKeyResult(response, "data"); String hongbao = JsonUtils.getKeyResult(data, "hongbao"); String money = JsonUtils.getKeyResult(data, "money"); String time_charge = JsonUtils.getKeyResult(data, "time_charge"); String power = JsonUtils.getKeyResult(data, "power"); String feeTotal = JsonUtils.getKeyResult(data, "feeTotal"); String end_info = JsonUtils.getKeyResult(data, "end_info"); String url = JsonUtils.getKeyResult(data, "url"); String zhuang_id = JsonUtils.getKeyResult(data, "zhan_id"); String order_id = JsonUtils.getKeyResult(data, "order_id"); MainApplication.isAppStart = false; ProfileManager.getInstance().setAppStart(getApplicationContext(), MainApplication.isAppStart); Intent intent = new Intent(getApplication(), OderDetailsActivity.class); intent.putExtra("hongbao", hongbao); intent.putExtra("money", money); intent.putExtra("time_charge", time_charge); intent.putExtra("power", power); intent.putExtra("feeTotal", feeTotal); intent.putExtra("end_info", end_info); intent.putExtra("url", url); intent.putExtra("zhuang_id", zhuang_id); intent.putExtra("order_id", order_id); intent.putExtra("zhan_idc", zhan_idc); startActivity(intent); // finish(); // Toast.makeText(getApplication(),"结束",Toast.LENGTH_SHORT).show(); } else if (code.equals("400")) { mTimer.cancel(); mTimer = null; if (null != timer) { timer.cancel(); } MainApplication.isAppStart = false; ProfileManager.getInstance().setAppStart(getApplicationContext(), MainApplication.isAppStart); // finish(); } else { String error_message = JsonUtils.getKeyResult(response, "error_message"); // if(!error_message.equals("")) { ToastUtil.showToast(getApplication(), error_message, Toast.LENGTH_SHORT); } if (null != mTimer) { mTimer.cancel(); mTimer = null; } if (null != timer) { timer.cancel(); } rl_scan.setVisibility(View.VISIBLE); ll_charging_status.setVisibility(View.GONE); } }); } @Override protected void onResume() { super.onResume(); if (MainMapActivity.total_unread > 0) { tv_msg_num.setVisibility(View.VISIBLE); tv_msg_num.setText(MainMapActivity.total_unread + ""); } else { tv_msg_num.setVisibility(View.GONE); } if (MainApplication.isLogin()) { getUserIntegral(); } else { ll_yue.setVisibility(View.GONE); } if (MainApplication.isLogin()) { chargingStatuss(); } else { rl_scan.setVisibility(View.VISIBLE); ll_charging_status.setVisibility(View.GONE); } } private void chargingStatuss() { tv_go.setEnabled(false); long appTime1 = System.currentTimeMillis() / 1000; long updatetime = appTime1 - MainMapActivity.cha - 3; String token = String.valueOf(updatetime); String url = MainApplication.url + "/zhannew/basic/web/index.php/xxapi/status_v2" + "?supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&password=" + MainApplication.userPassword + "&ver=1.0&sign=" + Md5Util.md5("password=" + MainApplication.userPassword + "&supplier=星星充电&timer=" + token + "&user_id=" + MainApplication.userId + "&key=661f9efdcb4f46fe7ab5f2e78a705a2a"); Log.e("urlstatuss", url); OkHttpUtils.get() .url(url) .build() .connTimeOut(10000) .readTimeOut(10000) .execute(new StringCallback() { @Override public void onError(Call call, Exception e) { ToastUtil.showToast(getApplicationContext(), "网络异常,请检查您的网络连接", Toast.LENGTH_SHORT); CrashReport.postCatchedException(e); } @Override public void onResponse(String response) { tv_go.setEnabled(true); Log.e("status===", response); String code = JsonUtils.getKeyResult(response, "code"); if (code.equals("200")) { setTimerTask(); rl_scan.setVisibility(View.GONE); ll_charging_status.setVisibility(View.VISIBLE); // startActivity(new Intent(getApplication(), ChargingStatusActivity.class)); Log.e("首页查询订单=", "有"); } else { rl_scan.setVisibility(View.VISIBLE); ll_charging_status.setVisibility(View.GONE); if (!tellist.contains(MainApplication.userPhone)) { try { new Handler().postDelayed(new Runnable() { @Override public void run() { if (null != money) { if (Float.parseFloat(money) > 1 && free_status.equals("0")) { boolean isDestory = true; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { isDestory = MainScanActivity.this.isDestroyed(); } if (!MainScanActivity.this.isFinishing() && isDestory == false) { alertDialogTwo.builder() .setMsg("新增支付宝小额免密支付功能,开通后无需充值,直接充电,快来开通吧") .setPositiveButton("去开通", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), NonSecretSeettingActivity.class); Uri uri = Uri.parse("chongdianzhuang://"); intent.setData(uri); startActivity(intent); } }).setNegativeButton("忽略", new View.OnClickListener() { @Override public void onClick(View v) { } }).show(); tellist += MainApplication.userPhone; ProfileManager.getInstance().setKeyTel(getApplicationContext(), tellist); } } } } }, 50); } catch (Exception e) { e.printStackTrace(); } } Log.e("首页查询订单=", "没有"); } } }); } @Override protected void onPause() { super.onPause(); } @Override protected void onDestroy() { super.onDestroy(); if (null != mTimer) { mTimer.cancel(); mTimer = null; } if (null != timer) { timer.cancel(); timer = null; } mHandler.removeCallbacksAndMessages(null); unregisterReceiver(networkChangeReceiver); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // EasyPermissions handles the request result. // try { EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); // }catch (Exception e){ // e.getStackTrace(); // } } @Override public void onPermissionsGranted(int requestCode, List<String> perms) { Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size()); } @Override public void onPermissionsDenied(int requestCode, List<String> perms) { if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { new AppSettingsDialog.Builder(MainScanActivity.this, "该功能需要开启摄像头权限,是否前往开启??").build().show(); } } class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (null != networkInfo && networkInfo.isAvailable()) { } else { Toast.makeText(context, "当前网络不可用", Toast.LENGTH_SHORT).show(); } } } private void getOperatorList() { String url = MainApplication.url + "/zhannew/basic/web/index.php/suppiler/operator-list"; OkHttpUtils.get().url(url).build().execute(new StringCallback() { @Override public void onError(Call call, Exception e) { } @Override public void onResponse(String response) { try { // Log.e(TAG, "getOperatorList: "+response ); Gson g = new Gson(); operatorPicBeen = g.fromJson(response, new TypeToken<ArrayList<OperatorPicBean>>() { }.getType()); // for (int i = 0;i<operatorPicBeen.size();i++){ // list_iv.get(i).setVisibility(View.VISIBLE); // Picasso.with(MainScanActivity.this).load(operatorPicBeen.get(i).getIcon()).into(list_iv.get(i)); // if (i == 3){ // break; // } // } // if (operatorPicBeen.size() == 4){ // tv_more.setVisibility(View.VISIBLE); // } // if (operatorPicBeen.size() >0){ // ll_1.setVisibility(View.VISIBLE); // } } catch (Exception e) { e.printStackTrace(); } } }); } @AfterPermissionGranted(RC_CAMERA_PERM) public void cameraTask() { if (hasCameraPermission()) { // Have permission, do the thing! // Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show(); ifTimeout(); } else { // Ask for one permission EasyPermissions.requestPermissions( this, "该功能需要开启摄像头权限,是否前往开启?", RC_CAMERA_PERM, Manifest.permission.CAMERA); } } @AfterPermissionGranted(RC_TELL_PERM) public void tellTask() { if (hasTellPermission()) { // Have permission, do the thing! // Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show(); String telNum = "4008810405"; Intent intent = new Intent(); intent.setAction("android.intent.action.CALL"); intent.addCategory("android.intent.category.DEFAULT"); intent.setData(Uri.parse("tel:" + telNum)); MainScanActivity.this.startActivity(intent); } else { LogUtils.e("@@@@@@@"); // Ask for one permission EasyPermissions.requestPermissions( this, "该功能需要开启拨号权限,是否前往开启?", RC_TELL_PERM, Manifest.permission.CALL_PHONE); } } private boolean hasCameraPermission() { return EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA); } private boolean hasTellPermission() { return EasyPermissions.hasPermissions(this, Manifest.permission.CALL_PHONE); } @SuppressLint("StringFormatInvalid") @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // if (requestCode == AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE) { // String yes = getString(R.string.app_id); // String no = getString(R.string.app_id); // // // Do something after user returned from app settings screen, like showing a Toast. // Toast.makeText( // this, // getString(R.string.app_id, // hasCameraPermission() ? yes : no), // Toast.LENGTH_LONG) // .show(); // } } public static boolean isCameraUseable() { boolean canUse = true; Camera mCamera = null; try { mCamera = Camera.open(); // setParameters 是针对魅族MX5。MX5通过Camera.open()拿到的Camera对象不为null Camera.Parameters mParameters = mCamera.getParameters(); mCamera.setParameters(mParameters); } catch (Exception e) { canUse = false; } if (mCamera != null) { mCamera.release(); } return canUse; } }