左晓为主开发手持机充值管理机
zuoxiao
2023-11-24 c1d325aeb5bfc710b1ef4d801619ffb65e0afe90
app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -9,9 +9,9 @@
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.IpBean;
import com.dayu.recharge.utils.ToastUtil;
import com.easysocket.EasySocket;
import com.easysocket.config.EasySocketOptions;
import com.easysocket.connection.action.SocketStatus;
import com.easysocket.entity.SocketAddress;
import com.tencent.bugly.crashreport.CrashReport;
import com.dayu.recharge.net.ScoketMessageProtocol;
@@ -26,8 +26,7 @@
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 com.dayu.recharge.utils.TipUtil;
import java.util.Arrays;
@@ -46,6 +45,7 @@
    public boolean isConncet = false;
    private final Timer timer = new Timer();
    @Override
    public void onCreate() {
        super.onCreate();
@@ -53,7 +53,7 @@
        isAidl = true;
        AidlUtil.getInstance().connectPrinterService(this);
        initEasySocket(false, null);
        socketConnect();
        CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
    }
@@ -67,13 +67,20 @@
        isAidl = aidl;
    }
    public IpBean ipBean;
    /**
     * 初始化EasySocket
     */
    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后修改ip不生效问题
@@ -100,7 +107,7 @@
                                    createSocket(msg.obj + "", ipBean.getPort());
                                    break;
                                case 2:
                                    ToastUtil.show(MyApplication.this, "DNS解析失败");
                                    ToastUtil.show("DNS解析失败");
                                    break;
                            }
@@ -186,14 +193,14 @@
                                            BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
//                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
                                            ToastUtil.show(MyApplication.this, "充值管理注册报文获取成功");
                                            ToastUtil.show("充值管理注册报文获取成功");
                                        } else {
                                            //校验CRC错误
                                            ToastUtil.show(MyApplication.this, "确认收到注册报文状态失败");
                                            ToastUtil.show("确认收到注册报文状态失败");
                                        }
                                    } else {
                                        //校验CRC错误
                                        ToastUtil.show(MyApplication.this, "确认收到注册报文校验CRC错误");
                                        ToastUtil.show("确认收到注册报文校验CRC错误");
                                    }
                                }
@@ -203,7 +210,7 @@
                                }
                            });
                        } else {//校验CRC错误
                            ToastUtil.show(MyApplication.this, "充值管理注册报文校验CRC错误");
                            ToastUtil.show("充值管理注册报文校验CRC错误");
                        }
                    }
@@ -226,9 +233,9 @@
                .setSocketAddress(new SocketAddress(ip, port))
                // 定义消息协议,方便解决 socket黏包、分包的问题
                .setReaderProtocol(new ScoketMessageProtocol())
                .setMaxWriteBytes(1024)
                .setMaxReadBytes(1024)
                .setRequestTimeout(10 * 1000)
                .setMaxWriteBytes(150)
                .setMaxReadBytes(150)
                .setRequestTimeout(5 * 1000)
                .build();
        // 初始化
@@ -236,43 +243,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();
            }
        }
    };
}