From 4852766718706c559a51913fc9629dbb8da306a6 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 08 十二月 2023 13:39:25 +0800 Subject: [PATCH] 添加备用IP地址 --- app/src/main/java/com/dayu/recharge/MyApplication.java | 54 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 32 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java index 5a9cafc..615acbc 100644 --- a/app/src/main/java/com/dayu/recharge/MyApplication.java +++ b/app/src/main/java/com/dayu/recharge/MyApplication.java @@ -1,6 +1,7 @@ package com.dayu.recharge; import android.app.Application; +import android.nfc.Tag; import android.os.Handler; import android.os.Message; import android.text.TextUtils; @@ -9,6 +10,7 @@ import com.dayu.recharge.dao.BaseDaoSingleton; import com.dayu.recharge.dbBean.DeviceNumber; import com.dayu.recharge.dbBean.IpBean; +import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.ToastUtil; import com.easysocket.EasySocket; import com.easysocket.config.EasySocketOptions; @@ -29,12 +31,13 @@ import com.dayu.recharge.utils.TipUtil; +import java.net.InetAddress; import java.util.Arrays; import java.util.Timer; import java.util.TimerTask; public class MyApplication extends Application { - + public static String TAG = "MyApplication"; public static MyApplication myApplication; private String address; @@ -45,13 +48,15 @@ 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); + +// initEasySocket(false, null); CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true); } @@ -66,13 +71,20 @@ isAidl = aidl; } + public IpBean ipBean; + /** * 鍒濆鍖朎asySocket */ public void initEasySocket(boolean isCreate, SocketNet.CreateBack createBack) { try { this.createBack = createBack; - IpBean ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst(); + ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst(); + if (ipBean == null) { + ipBean = new IpBean(); + ipBean.setIp("dayuyanjiuyuan.top"); + ipBean.setPort(8888); + } if (ipBean != null) { try { //澶勭悊褰撹繛鎺ヤ笂IP鍚庝慨鏀筰p涓嶇敓鏁堥棶棰� @@ -96,9 +108,13 @@ super.handleMessage(msg); switch (msg.what) { case 1: - createSocket(msg.obj + "", ipBean.getPort()); + createSocket(msg.obj + "", ipBean.getPort(), "0", 88); break; case 2: + InetAddress[] data = (InetAddress[]) msg.obj; + createSocket(data[0].getHostAddress(), ipBean.getPort(), data[1].getHostAddress(), ipBean.getPort()); + break; + case -1: ToastUtil.show("DNS瑙f瀽澶辫触"); break; } @@ -109,7 +125,7 @@ } else { //ip鏂瑰紡 if (EasySocket.getInstance().getContext() == null || isCreate) { - createSocket(ipBean.getIp(), ipBean.getPort()); + createSocket(ipBean.getIp(), ipBean.getPort(), "0", 88); } else { if (EasySocket.getInstance().getDefconnection() != null) { SocketAddress address = EasySocket.getInstance().getDefconnection().getOptions().getSocketAddress(); @@ -136,6 +152,8 @@ if (!TextUtils.isEmpty(ip) && !TextUtils.isEmpty(String.valueOf(port)) && !TextUtils.isEmpty(addressCode)) { + + Log.i("initMachineRequestBean", "寮�濮嬫敞鍐岃澶�"); if (EasySocket.getInstance().getDefconnection() != null) { isDoInitMachine = true; InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean(); @@ -144,8 +162,6 @@ 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) { @@ -153,7 +169,6 @@ if (CRC8.isCRC8(readData.getOriginDataBytes())) { //鏍¢獙CRC鎴愬姛 InitMachineBackBean initMachineBackBean = new InitMachineBackBean(); - String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18)); //纭鏀跺埌娉ㄥ唽鍙锋姤鏂� ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean(); @@ -175,15 +190,10 @@ //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); + if (!TextUtils.isEmpty(initCode)) { + DeviceNumberUtils.setDeviceNumber(initCode); } - BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber); - + Log.i(TAG, "onSuccess: 璁惧娉ㄥ唽鍙凤細" + initCode); // WSHelper.getInstance(MyApplication.this).put("initCode", initCode); ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�"); } else { @@ -213,21 +223,21 @@ }); } - - } + } - private void createSocket(String ip, int port) { + private void createSocket(String ip, int port, String backUpIp, int backUpPort) { // 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) + .setMaxWriteBytes(150) + .setMaxReadBytes(150) + .setRequestTimeout(5 * 1000) + .setBackupAddress(new SocketAddress(backUpIp, backUpPort)) .build(); // 鍒濆鍖� -- Gitblit v1.8.0