From fc6048b630901058ccd90529e32e031e612b8384 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 21 十一月 2023 14:32:03 +0800
Subject: [PATCH] 补卡相关

---
 app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 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 2a419ff..91d6565 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.activity;
 
 import android.content.Context;
+import android.os.Build;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -16,6 +17,9 @@
 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.zip.CRC32;
 
 /**
  * Copyright (C), 2023,
@@ -107,6 +111,8 @@
                 adminBinding.adminPhone.setText(adminData.getPhone());
                 adminBinding.adminName.setText(adminData.getName());
                 adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+            } else {
+                adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN()));
             }
 
         } catch (Exception e) {
@@ -155,5 +161,52 @@
         }
     }
 
+    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