From 75417d96b932dc5da0b3457fa1bc663fa64034f7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 29 十一月 2023 17:45:49 +0800
Subject: [PATCH] 修改权限逻辑,获取权限后再生成数据库 数据库保存在sd防止用户删除后没有数据了
---
app/src/main/java/com/dayu/recharge/MyApplication.java | 128 ++++++++++++-------------
app/src/main/java/com/dayu/recharge/net/SocketNet.java | 37 +++---
app/src/main/java/com/dayu/recharge/activity/LoginActivity.java | 41 +++++++-
app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java | 8
app/src/main/java/com/dayu/recharge/dao/BaseDaoSingleton.java | 11 +
app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java | 12 +-
app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java | 3
app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | 13 +-
app/src/main/java/com/dayu/recharge/activity/HomeActivity.java | 15 ---
9 files changed, 140 insertions(+), 128 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index da04377..41f25f0 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -1,6 +1,7 @@
package com.dayu.recharge;
import android.app.Application;
+import android.nfc.Tag;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
@@ -9,6 +10,7 @@
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.IpBean;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.ToastUtil;
import com.easysocket.EasySocket;
import com.easysocket.config.EasySocketOptions;
@@ -34,7 +36,7 @@
import java.util.TimerTask;
public class MyApplication extends Application {
-
+ public static String TAG = "MyApplication";
public static MyApplication myApplication;
private String address;
@@ -52,7 +54,8 @@
myApplication = this;
isAidl = true;
AidlUtil.getInstance().connectPrinterService(this);
- initEasySocket(false, null);
+
+// initEasySocket(false, null);
CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
}
@@ -144,86 +147,79 @@
if (!TextUtils.isEmpty(ip)
&& !TextUtils.isEmpty(String.valueOf(port))
&& !TextUtils.isEmpty(addressCode)) {
- if (EasySocket.getInstance().getDefconnection() != null) {
- isDoInitMachine = true;
- InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
- initMachineRequestBean.setControl("01");
- //130107200008 112 闈掓硥灞呭浼�
- initMachineRequestBean.setAddress(addressCode);
- initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
- initMachineRequestBean.setAFN("91");
-//
- Log.i("Socket", "娉ㄥ唽鎶ユ枃");
- SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
- @Override
- public void onSocketResponse(SocketData readData) {
- if (CRC8.isCRC8(readData.getOriginDataBytes())) {
- //鏍¢獙CRC鎴愬姛
- InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
+ Log.i("initMachineRequestBean", "寮�濮嬫敞鍐岃澶�");
+ if (EasySocket.getInstance().getDefconnection() != null) {
+ isDoInitMachine = true;
+ InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
+ initMachineRequestBean.setControl("01");
+ //130107200008 112 闈掓硥灞呭浼�
+ initMachineRequestBean.setAddress(addressCode);
+ initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
+ initMachineRequestBean.setAFN("91");
+ SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
+ @Override
+ public void onSocketResponse(SocketData readData) {
- String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
- //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
- ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
- confirmMachineRequestBean.setControl("01");
- //130107200008 112 闈掓硥灞呭浼�
- confirmMachineRequestBean.setAddress(addressCode);
- confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
- confirmMachineRequestBean.setAFN("92");
- confirmMachineRequestBean.setInitCode(initCode);
- Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
- SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
+ if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+ //鏍¢獙CRC鎴愬姛
+ InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
+ String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
+ //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
+ ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
+ confirmMachineRequestBean.setControl("01");
+ //130107200008 112 闈掓硥灞呭浼�
+ confirmMachineRequestBean.setAddress(addressCode);
+ confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
+ confirmMachineRequestBean.setAFN("92");
+ confirmMachineRequestBean.setInitCode(initCode);
+ Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
+ SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
- @Override
- public void onSocketResponse(SocketData readData) {
- isDoInitMachine = false;
- if (CRC8.isCRC8(readData.getOriginDataBytes())) {
- byte stateByte = readData.getBodyBytes()[2];
- String state = BcdUtil.bcdToStr(stateByte);
- //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
- if (state.equalsIgnoreCase("00")) {
- //淇濆瓨璁惧娉ㄥ唽鍙�
- DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
- if (deviceNumber != null) {
- deviceNumber.setDeviceRegistrationNumber(initCode);
- } else {
- deviceNumber = new DeviceNumber();
- deviceNumber.setDeviceRegistrationNumber(initCode);
- }
- BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
-
+ @Override
+ public void onSocketResponse(SocketData readData) {
+ isDoInitMachine = false;
+ if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+ byte stateByte = readData.getBodyBytes()[2];
+ String state = BcdUtil.bcdToStr(stateByte);
+ //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
+ if (state.equalsIgnoreCase("00")) {
+ //淇濆瓨璁惧娉ㄥ唽鍙�
+ if (!TextUtils.isEmpty(initCode)){
+ DeviceNumberUtils.setDeviceNumber(initCode);
+ }
+ Log.i(TAG, "onSuccess: 璁惧娉ㄥ唽鍙凤細" + initCode);
// WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
- ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+ ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+ } else {
+ //鏍¢獙CRC閿欒
+ ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+ }
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+ ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
}
- } else {
- //鏍¢獙CRC閿欒
- ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
}
- }
- @Override
- public void onSocketError(int code, String msg) {
+ @Override
+ public void onSocketError(int code, String msg) {
- }
- });
- } else {//鏍¢獙CRC閿欒
- ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+ }
+ });
+ } else {//鏍¢獙CRC閿欒
+ ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+ }
}
- }
- @Override
- public void onSocketError(int code, String msg) {
+ @Override
+ public void onSocketError(int code, String msg) {
- }
- });
+ }
+ });
+ }
}
-
- }
}
private void createSocket(String ip, int port) {
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 cfac406..7c47f40 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -61,20 +61,17 @@
adminBinding.adminAddressCode.setText(adminData.getAddressCode());
adminData.setSerial(adminBinding.adminSerial.getText().toString());
baseDao.adminDao().insert(adminData);
- MyApplication.myApplication.initEasySocket(false, null);
-
+ 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();
}
});
- setData();
- IpBean ipBean = baseDao.ipDao().findFirst();
- if (ipBean != null) {
- MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
- }
-
} else {
TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
}
diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
index fa0d0f9..fd36401 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -112,12 +112,12 @@
}
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (mNfcAdapter != null)
- mNfcAdapter.disableReaderMode(this);
- }
+// @Override
+// protected void onDestroy() {
+// super.onDestroy();
+// if (mNfcAdapter != null)
+// mNfcAdapter.disableReaderMode(this);
+// }
/**
* 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
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..4d52f56 100644
--- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -35,25 +35,10 @@
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) {
diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
index 673b1de..91b0873 100644
--- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -1,14 +1,22 @@
package com.dayu.recharge.activity;
+import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Toast;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.databinding.ActivityLoginBinding;
import com.dayu.recharge.dbBean.PassWordBean;
import com.dayu.recharge.utils.WSMD5;
+import com.permissionx.guolindev.PermissionX;
+
+import java.io.File;
/**
@@ -17,7 +25,7 @@
* Date: 2023-11-10 19:52
* Description: 鐧诲綍鐣岄潰
*/
-public class LoginActivity extends BaseActivity {
+public class LoginActivity extends AppCompatActivity {
ActivityLoginBinding binding;
PassWordBean passWordBean;
@@ -27,11 +35,7 @@
super.onCreate(savedInstanceState);
binding = ActivityLoginBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
- try {
- passWordBean = baseDao.loginPsDao().findFirst();
- } catch (Exception e) {
- e.printStackTrace();
- }
+ getPermission();
initView();
}
@@ -48,4 +52,29 @@
}
});
}
+
+ private void getPermission() {
+ PermissionX.init(LoginActivity.this).permissions(Manifest.permission.READ_PHONE_STATE,
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ .onExplainRequestReason((scope, deniedList) -> {
+ })
+ .request((allGranted, grantedList, deniedList) -> {
+ if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+ MyApplication.myApplication.initEasySocket(false, null);
+ try {
+ File file = new File(BaseDaoSingleton.SqlitePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ passWordBean = BaseDaoSingleton.getInstance(this).loginPsDao().findFirst();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
+
+
+ }
+ });
+ }
}
diff --git a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
index d0c2d12..9d3dd15 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
@@ -52,7 +52,7 @@
String oldIp = ipBean.getIp();
int oldPort = ipBean.getPort();
if (!oldIp.equals(ipBinding.ip.getText().toString())|| oldPort != Integer.valueOf(ipBinding.port.getText().toString())) {
- DeviceNumberUtils.setDeviceNumber("");
+// DeviceNumberUtils.setDeviceNumber("");
}
}
if (ipBean == null) {
@@ -64,9 +64,9 @@
AdminDataBean adminData = baseDao.adminDao().findFirst();
//淇敼IP鍚庨噸鏂拌繛鎺�
MyApplication.myApplication.initEasySocket(false, null);
- if (adminData != null) {
- MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
- }
+// if (adminData != null) {
+// MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
+// }
Toast.makeText(SysIpActivity.this, "淇濆瓨鎴愬姛", Toast.LENGTH_LONG).show();
}
});
diff --git a/app/src/main/java/com/dayu/recharge/dao/BaseDaoSingleton.java b/app/src/main/java/com/dayu/recharge/dao/BaseDaoSingleton.java
index c55fdc6..07d53c1 100644
--- a/app/src/main/java/com/dayu/recharge/dao/BaseDaoSingleton.java
+++ b/app/src/main/java/com/dayu/recharge/dao/BaseDaoSingleton.java
@@ -1,11 +1,14 @@
package com.dayu.recharge.dao;
import android.content.Context;
+import android.os.Environment;
import android.os.FileUtils;
import androidx.room.Room;
import com.dayu.recharge.utils.MyFileUtil;
+
+import java.io.File;
/**
* Copyright (C), 2023,
@@ -16,19 +19,21 @@
public class BaseDaoSingleton {
public static AppDatabase baseDao;
public static AppDatabase AsynchBaseDao;
-//MyFileUtil.SqlitePath +
+ public static String SqlitePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "dayu" + File.separator + "data" + File.separator;
+
+ //MyFileUtil.SqlitePath +
public static AppDatabase getInstance(Context context) {
if (baseDao == null) {
baseDao = Room.databaseBuilder(
context,
AppDatabase.class,
- "ConfigurationData"
+ SqlitePath + "ConfigurationData"
).allowMainThreadQueries().build();
}
return baseDao;
}
- public static AppDatabase getAsynchInstance(Context context){
+ public static AppDatabase getAsynchInstance(Context context) {
if (AsynchBaseDao == null) {
AsynchBaseDao = Room.databaseBuilder(
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index dd42aa1..3f0aaed 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -2,6 +2,7 @@
import android.content.Context;
import android.os.Handler;
+import android.text.TextUtils;
import android.util.Log;
import com.dayu.recharge.activity.HomeActivity;
@@ -94,28 +95,22 @@
*/
@Override
public void onSocketConnSuccess(SocketAddress socketAddress) {
- Log.i("SocketActionListener", "杩炴帴鎴愬姛");
+ Log.i("SocketActionListener1111", "杩炴帴鎴愬姛");
MyApplication.myApplication.isConncet = true;
- rushState();
- DeviceNumber initCode = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
- if (initCode == null && !MyApplication.myApplication.isDoInitMachine) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
+ AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
+ Log.i("SocketActionListener1111", "isDoInitMachine==" + MyApplication.myApplication.isDoInitMachine + "");
+ if (!MyApplication.myApplication.isDoInitMachine) {
+ Log.i("SocketActionListener1111", "isDoInitMachine");
+ if (MyApplication.myApplication.ipBean != null && adminData != null) {
+ if (!TextUtils.isEmpty(adminData.getAddressCode())) {
+ Log.i("SocketActionListener1111", "initMachineRequestBean");
+ MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
- AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
- if (MyApplication.myApplication.ipBean != null && adminData != null) {
- MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
- }
}
- }, 500);
+ }
}
-// if (dataMessage != null) {
-// EasySocket.getInstance().upMessage(dataMessage);
-// }
-
-
+ rushState();
}
/**
@@ -176,8 +171,12 @@
};
private void rushState() {
- if (HomeActivity.homeActivity != null) {
- HomeActivity.homeActivity.rushState();
+ try {
+ if (HomeActivity.homeActivity != null) {
+ HomeActivity.homeActivity.rushState();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
diff --git a/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java b/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java
index 47f0605..42a2ead 100644
--- a/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java
+++ b/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java
@@ -13,6 +13,7 @@
*/
public class DeviceNumberUtils {
+ // 鑾峰彇鍏呭�兼満璁惧搴忓垪鍙�
public static String getDeviceNumber() {
DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
if (deviceNumber != null) {
@@ -22,7 +23,7 @@
}
}
-
+ // 璁剧疆鍏呭�兼満璁惧搴忓垪鍙�
public static void setDeviceNumber(String deviceRegistrationNumber) {
DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
if (deviceNumber != null) {
--
Gitblit v1.8.0