From 732e4481b8437719468cddfb4971ee54a4b36625 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 02 四月 2024 09:48:38 +0800
Subject: [PATCH] 修复设备序列号没有设置地址时一直变化的bug
---
app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | 168 ++++++++++++++------------------------------------------
1 files changed, 42 insertions(+), 126 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
index 1cd0373..aa20f02 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -1,28 +1,18 @@
package com.dayu.recharge.activity;
-import android.annotation.SuppressLint;
import android.content.Context;
-import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
-import android.view.View;
import android.view.inputmethod.InputMethodManager;
import com.dayu.recharge.MyApplication;
import com.dayu.recharge.databinding.ActivityAdminSetupBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
import com.dayu.recharge.dbBean.IpBean;
-import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.TipUtil;
import com.example.pickerviewlibrary.picker.TeaPickerView;
-import com.example.pickerviewlibrary.picker.entity.PickerData;
-import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener;
import com.tencent.bugly.crashreport.CrashReport;
-
-import java.lang.reflect.Method;
-import java.util.Random;
-import java.util.zip.CRC32;
/**
* Copyright (C), 2023,
@@ -54,71 +44,48 @@
}
private void initView() {
- adminBinding.setupOk.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (!TextUtils.isEmpty(adminData.getCun())
- && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
- ) {
- if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
- adminBinding.adminAddressCode.setText(adminData.getAddressCode());
- adminData.setSerial(adminBinding.adminSerial.getText().toString());
- baseDao.adminDao().insert(adminData);
- setData();
- IpBean ipBean = MyApplication.myApplication.ipBean;
- if (ipBean != null) {
- MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
- }
- TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
- @Override
- public void onCancle() {
- AdminSetupActivity.this.finish();
- }
- });
- } else {
- TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+ adminBinding.setupOk.setOnClickListener(v -> {
+ if (!TextUtils.isEmpty(adminData.getCun())
+ && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
+ ) {
+ if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
+ adminBinding.adminAddressCode.setText(adminData.getAddressCode());
+ adminData.setSerial(adminBinding.adminSerial.getText().toString());
+ baseDao.adminDao().insert(adminData);
+ setData();
+ IpBean ipBean = MyApplication.myApplication.ipBean;
+ if (ipBean != null) {
+ MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
}
+ TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", () -> AdminSetupActivity.this.finish());
} else {
- TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+ TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
}
+ } else {
+ TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
}
});
- adminBinding.choseAddress.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(adminBinding.adminSerial.getWindowToken(), 0);
- intiPickerView();
- }
+ adminBinding.choseAddress.setOnClickListener(v -> {
+ InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(adminBinding.adminSerial.getWindowToken(), 0);
+ intiPickerView();
});
pickerView = new TeaPickerView(this);
- new Thread(new Runnable() {
- @Override
- public void run() {
- pickerView.initAddressData();
- }
- }).start();
+ new Thread(() -> pickerView.initAddressData()).start();
}
private void setData() {
try {
- AdminDataBean adminData = baseDao.adminDao().findFirst();
-
- if (adminData != null) {
- this.adminData = adminData;
+ adminData = baseDao.adminDao().findFirst();
+ if (adminData.isHasAddressCode()) {
adminBinding.adminSerial.setText(adminData.getSerial());
adminBinding.adminAddressCode.setText(adminData.getAddressCode());
adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
} else {
- // 鍒涘缓涓�涓殢鏈烘暟鐢熸垚鍣ㄥ璞�
- Random random = new Random();
- // 鐢熸垚 1 鍒� 12 涔嬮棿鐨勯殢鏈烘暟瀛�
- int randomNumber = random.nextInt(12) + 1;
- adminBinding.adminSerial.setText(randomNumber + generateUniqueNumber(getSN()));
-
+ adminBinding.adminSerial.setText(adminData.getSerial());
}
} catch (Exception e) {
@@ -138,28 +105,25 @@
.setRadius(25)
.build();
pickerView.show(adminBinding.choseAddress);
- pickerView.setOnPickerClickListener(new OnPickerClickListener() {
- @Override
- public void OnPickerClick(PickerData pickerData) {
- adminData.setSheng("娌冲崡");
- adminData.setShi(pickerData.getFirstText().getName());
- adminData.setXian(pickerData.getSecondText().getName());
- if (pickerData.getThirdText() != null) {
- adminData.setZhen(pickerData.getThirdText().getName());
- } else {
- adminData.setZhen("");
- }
- if (pickerData.getFourthText() != null) {
- adminData.setCun(pickerData.getFourthText().getName());
- adminData.setAddressCode(pickerData.getFourthText().getCode());
- } else {
- adminData.setCun("");
- adminData.setAddressCode(pickerData.getSecondText().getCode());
- }
- adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
- adminBinding.adminAddressCode.setText(adminData.getAddressCode());
- pickerView.dismiss();
+ pickerView.setOnPickerClickListener(pickerData -> {
+ adminData.setSheng("娌冲崡");
+ adminData.setShi(pickerData.getFirstText().getName());
+ adminData.setXian(pickerData.getSecondText().getName());
+ if (pickerData.getThirdText() != null) {
+ adminData.setZhen(pickerData.getThirdText().getName());
+ } else {
+ adminData.setZhen("");
}
+ if (pickerData.getFourthText() != null) {
+ adminData.setCun(pickerData.getFourthText().getName());
+ adminData.setAddressCode(pickerData.getFourthText().getCode());
+ } else {
+ adminData.setCun("");
+ adminData.setAddressCode(pickerData.getSecondText().getCode());
+ }
+ adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+ adminBinding.adminAddressCode.setText(adminData.getAddressCode());
+ pickerView.dismiss();
});
} catch (Exception e) {
CrashReport.postCatchedException(e);
@@ -168,53 +132,5 @@
}
}
- @SuppressLint("MissingPermission")
- public static String getSN() {
- String serial = null;
- try {
- Class<?> c = Class.forName("android.os.SystemProperties");
- Method get = c.getMethod("get", String.class);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
- try {
- serial = (String) get.invoke(c, "ro.sunmi.serial");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return serial;
- } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- serial = Build.getSerial();
- return serial;
- } else {
- //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡
- //return Build.SERIAL;
- try {
- serial = (String) get.invoke(c, "ro.serialno");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return serial;
- }
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- } catch (NoSuchMethodException e) {
- throw new RuntimeException(e);
- }
- }
-
- public static String generateUniqueNumber(String input) {
- try {
- // 浣跨敤CRC32鍝堝笇鍑芥暟
- CRC32 crc32 = new CRC32();
- crc32.update(input.getBytes());
- long crcValue = crc32.getValue();
- // 灏嗗搱甯屽�兼槧灏勫埌6浣嶆暟瀛楃殑鑼冨洿
- long sixDigitNumber = Math.abs(crcValue) % 1000000;
- // 鏍煎紡鍖栦负6浣嶆暟瀛楃殑瀛楃涓�
- return String.format("%06d", sixDigitNumber);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
}
--
Gitblit v1.8.0