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 | 168 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 126 insertions(+), 42 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 ea32a72..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,15 +1,24 @@
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;
import android.view.View;
+import android.widget.Toast;
+import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.R;
import com.dayu.recharge.databinding.ActivityHomeBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.utils.ToastUtil;
-import com.permissionx.guolindev.PermissionX;
+import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.view.PassWordDialog;
+
+import java.lang.reflect.Method;
+import java.util.Random;
+import java.util.zip.CRC32;
/**
@@ -20,72 +29,74 @@
*/
public class HomeActivity extends BaseActivity {
-
+ public static HomeActivity homeActivity;
ActivityHomeBinding homeBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ homeActivity = this;
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) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+ public void rushState() {
+ if (MyApplication.myApplication.isConncet) {
+ homeBinding.socketState.setTextColor(getResources().getColor(R.color.title_bg));
+ homeBinding.socketState.setText("宸茶繛鎺ユ暟鎹腑蹇�");
+ } else {
+ homeBinding.socketState.setTextColor(getResources().getColor(R.color.red));
+ homeBinding.socketState.setText("姝e湪杩炴帴鏁版嵁涓績");
+ }
- } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
-
-
- }
- });
}
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 {
- ToastUtil.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.homeNewCard.setOnClickListener(v -> {
+ AdminDataBean adminData1 = baseDao.adminDao().findFirst();
+ if (adminData1.isHasAddressCode()) {
+ startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
+ } else {
+ TipUtil.show("璇峰厛璁剧疆鍦板潃淇℃伅");
}
+
});
- homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
+ 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(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class));
- }
- });
+ 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
@@ -95,4 +106,77 @@
}
});
}
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ homeActivity = null;
+ }
+
+
+ long mExitTime;
+
+ //鐐瑰嚮涓ゆ閫�鍑虹▼搴� 鏈夋椂闂撮棿闅� 闂撮殧鍐呯偣鍑诲垯閫�鍑虹▼搴� 鍚﹀垯 鍒欐彁绀�
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ if ((System.currentTimeMillis() - mExitTime) > 2000) {
+ Toast.makeText(HomeActivity.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show();
+ mExitTime = System.currentTimeMillis();
+ } else {
+ HomeActivity.this.finish();
+ }
+ return true;
+ }
+ 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