From 9c9e9ea09a2d10637889c48a67c6147cf3d4136a Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 15 三月 2024 10:32:15 +0800
Subject: [PATCH] 没有打开NFC时,去打开NFC

---
 app/src/main/java/com/dayu/recharge/MyApplication.java |  208 ++++++++++++++++++++++++---------------------------
 1 files changed, 98 insertions(+), 110 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index d1f2172..298df2e 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -8,10 +8,6 @@
 
 import com.dayu.recharge.dao.BaseDaoSingleton;
 import com.dayu.recharge.dbBean.IpBean;
-import com.easysocket.EasySocket;
-import com.easysocket.config.EasySocketOptions;
-import com.easysocket.entity.SocketAddress;
-import com.tencent.bugly.crashreport.CrashReport;
 import com.dayu.recharge.net.ScoketMessageProtocol;
 import com.dayu.recharge.net.SocketCallBack;
 import com.dayu.recharge.net.SocketData;
@@ -23,17 +19,20 @@
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.utils.AidlUtil;
 import com.dayu.recharge.utils.CRC8;
+import com.dayu.recharge.utils.DeviceNumberUtils;
 import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.easysocket.EasySocket;
+import com.easysocket.config.EasySocketOptions;
+import com.easysocket.entity.SocketAddress;
+import com.tencent.bugly.crashreport.CrashReport;
 
-
+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;
 
@@ -44,15 +43,17 @@
     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();
-        CrashReport.initCrashReport(getApplicationContext(), "846987eae9", true);
+
+//        initEasySocket(false, null);
+
+        CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
     }
 
     private boolean isAidl;
@@ -65,13 +66,24 @@
         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();
+            try {
+                ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
+            } catch (Exception e) {
+              e.printStackTrace();
+            }
+            if (ipBean == null) {
+                ipBean = new IpBean();
+                ipBean.setIp("newreceive.hnsjgg.com");
+                ipBean.setPort(9999);
+            }
             if (ipBean != null) {
                 try {
                     //澶勭悊褰撹繛鎺ヤ笂IP鍚庝慨鏀筰p涓嶇敓鏁堥棶棰�
@@ -95,10 +107,14 @@
                             super.handleMessage(msg);
                             switch (msg.what) {
                                 case 1:
-                                    createSocket(msg.obj + "", ipBean.getPort());
+                                    createSocket(msg.obj + "", ipBean.getPort(), "0", 88);
                                     break;
                                 case 2:
-                                    ToastUtil.show(MyApplication.this, "DNS瑙f瀽澶辫触");
+                                    InetAddress[] data = (InetAddress[]) msg.obj;
+                                    createSocket(data[0].getHostAddress(), ipBean.getPort(), data[1].getHostAddress(), ipBean.getPort());
+                                    break;
+                                case -1:
+                                    ToastUtil.show("DNS瑙f瀽澶辫触");
                                     break;
                             }
 
@@ -108,7 +124,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();
@@ -135,85 +151,94 @@
         if (!TextUtils.isEmpty(ip)
                 && !TextUtils.isEmpty(String.valueOf(port))
                 && !TextUtils.isEmpty(addressCode)) {
-            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();
+            Log.i("initMachineRequestBean", "寮�濮嬫敞鍐岃澶�");
+            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");
+                SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
+                    @Override
+                    public void onSocketResponse(SocketData readData) {
 
-                        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() {
+                        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")) {
-                                        //淇濆瓨璁惧娉ㄥ唽鍙�
-                                        BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
-                                        WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
-                                        ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+                                @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")) {
+                                            //淇濆瓨璁惧娉ㄥ唽鍙�
+                                            if (!TextUtils.isEmpty(initCode)) {
+                                                DeviceNumberUtils.setDeviceNumber(initCode);
+                                            }
+                                            Log.i(TAG, "onSuccess: 璁惧娉ㄥ唽鍙凤細" + initCode);
+//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
+                                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+                                        } else {
+                                            Log.i(TAG, "娉ㄥ唽澶辫触--- 鐘舵�佺爜锛�" + state);
+                                            //鏍¢獙CRC閿欒
+//                                            ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                        }
                                     } else {
                                         //鏍¢獙CRC閿欒
-                                        ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                        ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                     }
-                                } else {
-                                    //鏍¢獙CRC閿欒
-                                    ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                 }
-                            }
 
-                            @Override
-                            public void onSocketError(int code, String msg) {
+                                @Override
+                                public void onSocketError(int code, String msg) {
 
-                            }
-                        });
-                    } else {//鏍¢獙CRC閿欒
-                        ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+                                }
+                            });
+                        } else {//鏍¢獙CRC閿欒
+                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+                        }
                     }
-                }
 
-                @Override
-                public void onSocketError(int code, String msg) {
+                    @Override
+                    public void onSocketError(int code, String msg) {
 
-                }
-            });
+                    }
+                });
+
+            }
         }
+
     }
 
-    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();
 
         // 鍒濆鍖�
@@ -221,43 +246,6 @@
 //        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