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/HomeActivity.java | 136 ++++++++++++++++++++++++++++----------------
1 files changed, 86 insertions(+), 50 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
index 62eae53..41cfc66 100644
--- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -1,7 +1,8 @@
package com.dayu.recharge.activity;
-import android.Manifest;
+import android.annotation.SuppressLint;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -13,8 +14,11 @@
import com.dayu.recharge.databinding.ActivityHomeBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
import com.dayu.recharge.utils.TipUtil;
-import com.dayu.recharge.utils.ToastUtil;
-import com.permissionx.guolindev.PermissionX;
+import com.dayu.recharge.view.PassWordDialog;
+
+import java.lang.reflect.Method;
+import java.util.Random;
+import java.util.zip.CRC32;
/**
@@ -35,25 +39,9 @@
homeBinding = ActivityHomeBinding.inflate(LayoutInflater.from(this));
setContentView(homeBinding.getRoot());
initView();
- getPermission();
rushState();
}
- private void getPermission() {
- PermissionX.init(HomeActivity.this).permissions(Manifest.permission.READ_PHONE_STATE)
- .onExplainRequestReason((scope, deniedList) -> {
-
-// val message = "PermissionX闇�瑕佹偍鍚屾剰浠ヤ笅鏉冮檺鎵嶈兘姝e父浣跨敤"
- })
- .request((allGranted, grantedList, deniedList) -> {
- if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
-
- } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
-
-
- }
- });
- }
public void rushState() {
if (MyApplication.myApplication.isConncet) {
@@ -67,49 +55,48 @@
}
private void initView() {
- homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- AdminDataBean adminData = baseDao.adminDao().findFirst();
- if (adminData != null) {
- startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
- } else {
- TipUtil.show("璇峰厛璁剧疆鍦板潃淇℃伅");
- }
+ AdminDataBean adminData = baseDao.adminDao().findFirst();
+ if (adminData == null) {
+ // 鍒涘缓涓�涓殢鏈烘暟鐢熸垚鍣ㄥ璞�
+ Random random = new Random();
+ // 鐢熸垚 1 鍒� 12 涔嬮棿鐨勯殢鏈烘暟瀛�
+ int randomNumber = random.nextInt(12) + 1;
+ AdminDataBean adminDataBean = new AdminDataBean();
+ adminDataBean.setSerial(randomNumber + generateUniqueNumber(getSN()));
+ baseDao.adminDao().insert(adminDataBean);
+ }
- }
- });
- homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- AdminDataBean adminData = baseDao.adminDao().findFirst();
- if (adminData != null) {
- startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
- } else {
- TipUtil.show("璇峰厛璁剧疆鍦板潃淇℃伅");
- }
+ homeBinding.homeNewCard.setOnClickListener(v -> {
+ AdminDataBean adminData1 = baseDao.adminDao().findFirst();
+ if (adminData1.isHasAddressCode()) {
+ startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
+ } else {
+ TipUtil.show("璇峰厛璁剧疆鍦板潃淇℃伅");
}
+
});
- homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class));
+ homeBinding.homeRecharge.setOnClickListener(v -> {
+ AdminDataBean adminData12 = baseDao.adminDao().findFirst();
+ if (adminData12.isHasAddressCode()) {
+ startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
+ } else {
+ TipUtil.show("璇峰厛璁剧疆鍦板潃淇℃伅");
}
+
});
+ homeBinding.homeRedCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class)));
homeBinding.homeAdmin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- startActivity(new Intent(HomeActivity.this, SysActivity.class));
+ PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.class));
+ passWordDialog.show();
}
});
//鍙傛暟璁剧疆
- homeBinding.homeParameter.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(HomeActivity.this, ParameterActivity.class));
-
- }
+ homeBinding.homeParameter.setOnClickListener(v -> {
+ PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class));
+ passWordDialog.show();
});
homeBinding.homeMy.setOnClickListener(new View.OnClickListener() {
@Override
@@ -143,4 +130,53 @@
}
return super.onKeyDown(keyCode, event);
}
+
+ public 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;
+ }
+ }
+
+ @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);
+ }
+ }
}
--
Gitblit v1.8.0