From b5b0bd260898f816f171aec59f20098fe67eaffe Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 27 三月 2024 15:46:46 +0800
Subject: [PATCH] IP设置界面调整
---
app/src/main/java/com/dayu/recharge/net/SocketNet.java | 164 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 119 insertions(+), 45 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index 9783701..ebabc9d 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -1,23 +1,28 @@
package com.dayu.recharge.net;
+import android.app.Activity;
import android.content.Context;
-import android.os.Handler;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
+import com.dayu.recharge.MyApplication;
import com.dayu.recharge.activity.HomeActivity;
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.dbBean.DeviceNumber;
-import com.dayu.recharge.dbBean.IpBean;
import com.easysocket.EasySocket;
-import com.easysocket.connection.action.SocketStatus;
+import com.easysocket.callback.SimpleCallBack;
import com.easysocket.entity.OriginReadData;
import com.easysocket.entity.SocketAddress;
+import com.easysocket.exception.RequestTimeOutException;
import com.easysocket.interfaces.conn.ISocketActionListener;
import com.easysocket.interfaces.conn.SocketActionListener;
-import com.dayu.recharge.MyApplication;
import com.easysocket.utils.HexUtil;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.logging.Handler;
/**
@@ -33,13 +38,13 @@
boolean isTest = false;
Context mContext;
+ CallbackSender mSender;
+
public static SocketNet getInstance() {
if (socketNet == null) {
socketNet = new SocketNet();
- if (socketNet.socketActionListener != null) {
-
- }
}
+
return socketNet;
}
@@ -47,24 +52,62 @@
/**
* 鍙戦�佷竴涓殑娑堟伅锛�
*/
- public void sendTestMessage(byte[] dataMessage, SocketCallBack callBack) {
+ public void sendTestMessage(byte[] dataMessage, String AFN, SocketCallBack callBack) {
myCallBack = callBack;
isTest = false;
- // 鍙戦��
-// EasySocket.getInstance().upMessage(dataMessage);
- if (EasySocket.getInstance().getDefconnection() != null) {
-// EasySocket.getInstance().disconnect(false);
-// EasySocket.getInstance().connect();
-// if (EasySocket.getInstance().getDefconnection().getConnectionStatus()== SocketStatus.SOCKET_CONNECTED){
- EasySocket.getInstance().upMessage(dataMessage);
-// }else {
-//
-// }
+ mSender = new CallbackSender();
+ mSender.setAFN(AFN);
+ mSender.setData(dataMessage);
+ if (isNetworkAvailable(MyApplication.myApplication)) {
+ // 鍙戦��
+ if (EasySocket.getInstance().getDefconnection() != null) {
+// EasySocket.getInstance().upMessage(dataMessage);
+ EasySocket.getInstance().upCallbackMessage(mSender).onCallBack(new SimpleCallBack(AFN) {
+ @Override
+ public void onResponse(OriginReadData data) {
-// this.dataMessage = dataMessage;
+ try {
+ mSender = null;
+ myCallBack = null;
+ Log.i("SocketActionListener", "SimpleCallBack鏀跺埌鏁版嵁-->" + HexUtil.bytesToHex(data.getBodyBytes()));
+ SocketData socketData = new SocketData();
+ socketData.setBodyData(data.getBodyBytes());
+ socketData.setHeaderData(data.getHeaderData());
+// dataMessage = null;
+ if (callBack != null) {
+ callBack.onSocketResponse(socketData);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onError(Exception e) {
+ super.onError(e);
+ mSender = null;
+ myCallBack = null;
+ try {
+ if (e instanceof RequestTimeOutException) {
+ // 鍦ㄨ繖閲屾墽琛岄渶瑕佸湪涓荤嚎绋嬩腑鎵ц鐨勬搷浣�
+ callBack.onSocketError(-3, "璇锋眰瓒呮椂锛屾鍦ㄩ噸璇�");
+ //瓒呮椂鍚庨噸鏂拌繛鎺�
+ EasySocket.getInstance().disconnect(true);
+ }
+
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ });
+ } else {
+ callBack.onSocketError(-2, "涓庢湇鍔″櫒杩炴帴鏂紑锛岃妫�鏌ョ綉缁滅◢鍚庡啀璇�");
+ MyApplication.myApplication.initEasySocket(false, null);
+ }
} else {
- MyApplication.myApplication.initEasySocket(false, null);
+ callBack.onSocketError(-2, "璇锋鏌ョ綉缁滆繛鎺�");
}
+
}
@@ -102,20 +145,35 @@
*/
@Override
public void onSocketConnSuccess(SocketAddress socketAddress) {
+
+
Log.i("SocketActionListener1111", "杩炴帴鎴愬姛");
MyApplication.myApplication.isConncet = true;
- AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
- Log.i("SocketActionListener1111", "isDoInitMachine==" + MyApplication.myApplication.isDoInitMachine + "");
- if (!MyApplication.myApplication.isDoInitMachine) {
- Log.i("SocketActionListener1111", "isDoInitMachine");
- if (MyApplication.myApplication.ipBean != null && adminData != null) {
- if (!TextUtils.isEmpty(adminData.getAddressCode())) {
- Log.i("SocketActionListener1111", "initMachineRequestBean");
- MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
+ try {
+ AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
+ Log.i("SocketActionListener1111", "isDoInitMachine==" + MyApplication.myApplication.isDoInitMachine + "");
+ //姣忔杩炴帴鎴愬姛娉ㄥ唽涓�娆¤澶�
+ if (!MyApplication.myApplication.isDoInitMachine) {
+ Log.i("SocketActionListener1111", "isDoInitMachine");
+ if (MyApplication.myApplication.ipBean != null && adminData != null) {
+ if (!TextUtils.isEmpty(adminData.getAddressCode()) && !MyApplication.myApplication.isCreate) {
+ Log.i("SocketActionListener1111", "initMachineRequestBean");
+ MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
+ }
}
}
+ try {
+ if (mSender != null) {
+ sendTestMessage(mSender.getData(), mSender.getAFN(), myCallBack);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ } catch (Exception e) {
+ CrashReport.postCatchedException(e);
}
rushState();
}
@@ -130,13 +188,10 @@
MyApplication.myApplication.isConncet = false;
rushState();
Log.i("SocketActionListener", "socket杩炴帴澶辫触");
- if (isTest) {
-// ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
- } else {
- if (myCallBack != null) {
- myCallBack.onSocketError(-1, "杩炴帴鏁版嵁涓績澶辫触,璇锋鏌ョ綉缁�");
- }
- }
+// if (myCallBack != null) {
+// myCallBack.onSocketError(-1, "杩炴帴鏁版嵁涓績澶辫触,璇锋鏌ョ綉缁�");
+// }
+// myCallBack = null;
}
/**
@@ -149,8 +204,15 @@
Log.i("SocketActionListener", "---> socket鏂紑杩炴帴锛屾槸鍚﹂渶瑕侀噸杩烇細" + isNeedReconnect);
MyApplication.myApplication.isConncet = false;
rushState();
+ try {
+ if (myCallBack != null) {
+ myCallBack.onSocketError(-2, "涓庢湇鍔″櫒杩炴帴鏂紑锛岃妫�鏌ョ綉缁�");
+ }
+ myCallBack = null;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
-
/**
@@ -162,14 +224,14 @@
public void onSocketResponse(SocketAddress socketAddress, OriginReadData originReadData) {
super.onSocketResponse(socketAddress, originReadData);
Log.i("SocketActionListener", "SocketActionListener鏀跺埌鏁版嵁-->" + HexUtil.bytesToHex(originReadData.getBodyBytes()));
- SocketData socketData = new SocketData();
- socketData.setBodyData(originReadData.getBodyBytes());
- socketData.setHeaderData(originReadData.getHeaderData());
-// dataMessage = null;
- if (myCallBack != null) {
- myCallBack.onSocketResponse(socketData);
- }
-
+// SocketData socketData = new SocketData();
+// socketData.setBodyData(originReadData.getBodyBytes());
+// socketData.setHeaderData(originReadData.getHeaderData());
+//// dataMessage = null;
+// if (myCallBack != null) {
+// myCallBack.onSocketResponse(socketData);
+// }
+// myCallBack = null;
}
};
@@ -183,4 +245,16 @@
}
}
+ // 妫�鏌ョ綉缁滆繛鎺ユ槸鍚﹀彲鐢�
+ public boolean isNetworkAvailable(Context context) {
+ if (context != null) {
+ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ if (connectivityManager != null) {
+ NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
+ return activeNetworkInfo != null && activeNetworkInfo.isConnected();
+ }
+ }
+ return false;
+ }
+
}
--
Gitblit v1.8.0