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