| | |
| | | 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 com.dayu.recharge.databinding.ActivityAdminSetupBinding; |
| | | import com.dayu.recharge.dbBean.AdminDataBean; |
| | | import com.dayu.recharge.dbBean.IpBean; |
| | | import com.dayu.recharge.utils.ToastUtil; |
| | | 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, |
| | |
| | | adminBinding.setupOk.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (!TextUtils.isEmpty(adminBinding.adminName.getText().toString()) |
| | | && !TextUtils.isEmpty(adminBinding.adminPhone.getText().toString()) |
| | | && !TextUtils.isEmpty(adminData.getCun()) |
| | | if (!TextUtils.isEmpty(adminData.getCun()) |
| | | && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString()) |
| | | ) { |
| | | if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) { |
| | | adminData.setName(adminBinding.adminName.getText().toString()); |
| | | adminData.setPhone(adminBinding.adminPhone.getText().toString()); |
| | | adminBinding.adminAddressCode.setText(adminData.getAddressCode()); |
| | | adminData.setSerial(adminBinding.adminSerial.getText().toString()); |
| | | baseDao.adminDao().insert(adminData); |
| | | MyApplication.myApplication.initEasySocket(false, null); |
| | | |
| | | ToastUtil.show(AdminSetupActivity.this, "设置成功"); |
| | | setData(); |
| | | IpBean ipBean = baseDao.ipDao().findFirst(); |
| | | 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 { |
| | | ToastUtil.show(AdminSetupActivity.this, "输入的数字不能超过16777215"); |
| | | TipUtil.show(AdminSetupActivity.this, "输入的数字不能超过16777215"); |
| | | } |
| | | } else { |
| | | ToastUtil.show(AdminSetupActivity.this, "请输入完整内容"); |
| | | TipUtil.show(AdminSetupActivity.this, "请输入完整内容"); |
| | | } |
| | | } |
| | | }); |
| | |
| | | if (adminData != null) { |
| | | this.adminData = adminData; |
| | | adminBinding.adminSerial.setText(adminData.getSerial()); |
| | | adminBinding.adminPhone.setText(adminData.getPhone()); |
| | | adminBinding.adminName.setText(adminData.getName()); |
| | | 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())); |
| | | |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | |
| | | 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(); |
| | | } |
| | | }); |
| | |
| | | } |
| | | } |
| | | |
| | | @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; |
| | | } |
| | | } |
| | | |
| | | } |