From d08a5a6d062f1568aaeb14d2d72357826291ef97 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期六, 13 七月 2024 18:14:28 +0800
Subject: [PATCH] 添加齐河管理卡相关逻辑 修复bug
---
app/src/main/java/com/dayu/recharge/MyApplication.java | 287 ++++++++------------------------------------------------
1 files changed, 43 insertions(+), 244 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index 2b4e13f..a70b71f 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -1,278 +1,77 @@
package com.dayu.recharge;
import android.app.Application;
-import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
-import android.util.Log;
-import com.dayu.recharge.dao.BaseDaoSingleton;
-import com.dayu.recharge.dbBean.DeviceNumber;
-import com.dayu.recharge.dbBean.IpBean;
-import com.easysocket.EasySocket;
-import com.easysocket.config.EasySocketOptions;
-import com.easysocket.connection.action.SocketStatus;
-import com.easysocket.entity.SocketAddress;
+import com.dayu.baselibrary.BaseApplication;
+import com.dayu.baselibrary.dao.BaseDaoSingleton;
+import com.dayu.baselibrary.dbbean.LibraryBean;
+import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.henanlibrary.HeNanApplication;
+import com.dayu.henanlibrary.dao.HNBaseDaoSingleton;
+import com.dayu.henanlibrary.dbBean.AdminDataBean;
+import com.dayu.qihealonelibrary.QHAloneApplication;
import com.tencent.bugly.crashreport.CrashReport;
-import com.dayu.recharge.net.ScoketMessageProtocol;
-import com.dayu.recharge.net.SocketCallBack;
-import com.dayu.recharge.net.SocketData;
-import com.dayu.recharge.net.SocketNet;
-import com.dayu.recharge.socketBean.ConfirmMachineRequestBean;
-import com.dayu.recharge.socketBean.InitMachineBackBean;
-import com.dayu.recharge.socketBean.InitMachineRequestBean;
-import com.dayu.recharge.tools.BcdUtil;
-import com.dayu.recharge.tools.HexUtil;
-import com.dayu.recharge.utils.AidlUtil;
-import com.dayu.recharge.utils.CRC8;
-import com.dayu.recharge.utils.SocketUtil;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
-
-import java.util.Arrays;
-import java.util.Timer;
-import java.util.TimerTask;
+import java.io.File;
public class MyApplication extends Application {
+ public static String TAG = "MyApplication";
+ //褰撳墠鍔犺浇鐨刲ibrary妯″潡 //0锛氭渤鍗楃増鏈紝1榻愭渤鍗曟満鐗�
+ public int libraryType = BaseCommon.NoLibrary;
public static MyApplication myApplication;
- private String address;
-
- SocketNet.CreateBack createBack;
- //鏄惁姝e湪璇锋眰鍒濆鍖栨帴鍙�
- public boolean isDoInitMachine = false;
- //鏄惁杩炴帴鏈嶅姟鍣ㄦ垚鍔�
- public boolean isConncet = false;
- private final Timer timer = new Timer();
@Override
public void onCreate() {
super.onCreate();
myApplication = this;
- isAidl = true;
- AidlUtil.getInstance().connectPrinterService(this);
- initEasySocket(false, null);
- socketConnect();
+ try {
+ File file = new File(HNBaseDaoSingleton.SqlitePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ initApplication();
+ BaseApplication.getInstance().onCreat(this);
CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
}
- private boolean isAidl;
- public boolean isAidl() {
- return isAidl;
- }
-
- public void setAidl(boolean aidl) {
- isAidl = aidl;
- }
-
- /**
- * 鍒濆鍖朎asySocket
- */
- public void initEasySocket(boolean isCreate, SocketNet.CreateBack createBack) {
+ public void initApplication() {
+ //鍏煎鑰佺増鐨勶紝璁や负鏈塧ddressCode骞朵笖LibraryBean涓簄ull鐨勪负娌冲崡鐗堟湰鐨�
try {
- this.createBack = createBack;
- IpBean ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
- if (ipBean != null) {
- try {
- //澶勭悊褰撹繛鎺ヤ笂IP鍚庝慨鏀筰p涓嶇敓鏁堥棶棰�
- if (EasySocket.getInstance().getDefconnection() != null) {
- SocketAddress address = EasySocket.getInstance().getDefconnection().getOptions().getSocketAddress();
- if (address != null) {
- if (!address.getIp().equals(ipBean.getIp()) || address.getPort() != ipBean.getPort()) {
- EasySocket.getInstance().destroyConnection();
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (!SocketUtil.isInteger(ipBean.getIp())) {
- //鍩熷悕鏂瑰紡
- SocketUtil.parseHostGetIPAddress(ipBean.getIp(), new Handler() {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case 1:
- createSocket(msg.obj + "", ipBean.getPort());
- break;
- case 2:
- ToastUtil.show(MyApplication.this, "DNS瑙f瀽澶辫触");
- break;
- }
-
- }
- });
-
- } else {
- //ip鏂瑰紡
- if (EasySocket.getInstance().getContext() == null || isCreate) {
- createSocket(ipBean.getIp(), ipBean.getPort());
- } else {
- if (EasySocket.getInstance().getDefconnection() != null) {
- SocketAddress address = EasySocket.getInstance().getDefconnection().getOptions().getSocketAddress();
- if (address != null) {
- if (!address.getIp().equals(ipBean.getIp()) || address.getPort() != ipBean.getPort()) {
- EasySocket.getInstance().destroyConnection();
- }
- }
- }
- }
-
+ AdminDataBean adminDataBean = HNBaseDaoSingleton.getInstance(this).adminDao().findFirst();
+ LibraryBean libraryBean = BaseDaoSingleton.getInstance(this).libraryDao().findFirst();
+ if (adminDataBean != null && libraryBean == null && !TextUtils.isEmpty(adminDataBean.addressCode)) {
+ libraryType = BaseCommon.HeNanLibrary;
+ initHeNan();
+ } else if (libraryBean != null) {
+ libraryType = libraryBean.getType();
+ switch (libraryType) {
+ case BaseCommon.HeNanLibrary:
+ initHeNan();
+ break;
+ case BaseCommon.QHAloneLibrary:
+ QHAloneApplication.getInstance().application = this;
+ break;
}
}
} catch (Exception e) {
e.printStackTrace();
+ CrashReport.postCatchedException(e);
}
}
-
/**
- * 鍏呭�肩鐞嗘満娉ㄥ唽
+ * 鍒濆鍖栨渤鍗�
*/
- public void initMachineRequestBean(String ip, int port, String addressCode) {
- if (!TextUtils.isEmpty(ip)
- && !TextUtils.isEmpty(String.valueOf(port))
- && !TextUtils.isEmpty(addressCode)) {
- if (EasySocket.getInstance().getDefconnection() != null) {
- isDoInitMachine = true;
- InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
- initMachineRequestBean.setControl("01");
- //130107200008 112 闈掓硥灞呭浼�
- initMachineRequestBean.setAddress(addressCode);
- initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
- initMachineRequestBean.setAFN("91");
-//
- Log.i("Socket", "娉ㄥ唽鎶ユ枃");
- SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
- @Override
- public void onSocketResponse(SocketData readData) {
-
- if (CRC8.isCRC8(readData.getOriginDataBytes())) {
- //鏍¢獙CRC鎴愬姛
- InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
-
- String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
- //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
- ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
- confirmMachineRequestBean.setControl("01");
- //130107200008 112 闈掓硥灞呭浼�
- confirmMachineRequestBean.setAddress(addressCode);
- confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
- confirmMachineRequestBean.setAFN("92");
- confirmMachineRequestBean.setInitCode(initCode);
- Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
- SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
-
- @Override
- public void onSocketResponse(SocketData readData) {
- isDoInitMachine = false;
- if (CRC8.isCRC8(readData.getOriginDataBytes())) {
- byte stateByte = readData.getBodyBytes()[2];
- String state = BcdUtil.bcdToStr(stateByte);
- //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
- if (state.equalsIgnoreCase("00")) {
- //淇濆瓨璁惧娉ㄥ唽鍙�
- DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
- if (deviceNumber != null) {
- deviceNumber.setDeviceRegistrationNumber(initCode);
- } else {
- deviceNumber = new DeviceNumber();
- deviceNumber.setDeviceRegistrationNumber(initCode);
- }
- BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
-
-// WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
- ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
- } else {
- //鏍¢獙CRC閿欒
- ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
- }
- } else {
- //鏍¢獙CRC閿欒
- ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
- }
- }
-
- @Override
- public void onSocketError(int code, String msg) {
-
- }
- });
- } else {//鏍¢獙CRC閿欒
- ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
- }
- }
-
- @Override
- public void onSocketError(int code, String msg) {
-
- }
- });
-
- }
-
-
- }
+ private void initHeNan() {
+ HeNanApplication.getInstance().application = this;
+ HeNanApplication.getInstance().initEasySocket(false, null);
}
-
- private void createSocket(String ip, int port) {
- // socket閰嶇疆
- EasySocketOptions options = new EasySocketOptions.Builder()
- // 涓绘満鍦板潃锛岃濉啓鑷繁鐨処P鍦板潃锛屼互getString鐨勬柟寮忔槸涓轰簡闅愯棌浣滆�呰嚜宸辩殑IP鍦板潃
- .setSocketAddress(new SocketAddress(ip, port))
- // 瀹氫箟娑堟伅鍗忚锛屾柟渚胯В鍐� socket榛忓寘銆佸垎鍖呯殑闂
- .setReaderProtocol(new ScoketMessageProtocol())
- .setMaxWriteBytes(1024)
- .setMaxReadBytes(1024)
- .setRequestTimeout(10 * 1000)
- .build();
-
- // 鍒濆鍖�
- EasySocket.getInstance().createConnection(options, this);// 鍒涘缓涓�涓猻ocket杩炴帴
-// EasySocket.getInstance().subscribeSocketAction(socketActionListener);
- EasySocket.getInstance().subscribeSocketAction(SocketNet.getInstance().socketNet.socketActionListener);
- }
-
-
- /**
- * 瀹氭椂閲嶈繛鏈嶅姟鍣�
- */
- private void socketConnect() {
-
- try {
- TimerTask task = new TimerTask() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
-// timer.schedule(task, 5000, 1000 * 60 * 3);
- timer.schedule(task, 5000, 1000 * 60 * 3);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- // 瑕佸仛鐨勪簨鎯�
- super.handleMessage(msg);
- try {
- SocketNet.getInstance().isConnect(MyApplication.this);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- };
}
--
Gitblit v1.8.0