From feb7add1979c830e0d940286242a7c489f2f8f96 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 27 九月 2024 09:23:34 +0800
Subject: [PATCH] 优化NFC模块架构,将一些方法抽调到父类中。

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseNfcActivity.java        |   37 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java                            |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivityQHOline.java            |   14 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigureDeviceRegistrationCrad.java             |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java                          |   55 
 henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java                              |  350 ---
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java                                  |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/ManagerCardAdapter.java             |    6 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java                      |  605 +++++++
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java                        |  106 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivityQHOline.java |    2 
 qiheonlinelibrary/src/main/res/layout/qihe_line_item_replacements.xml                                  |    2 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeActivity.java                        |   12 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCardHN.java                            |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java                 |    8 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ManagerCardAdapter.java               |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivityQHOline.java     |   12 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java                   |  268 ---
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java                            |   21 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCardHN.java                              |    4 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java         |   48 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java        |   13 
 qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml                                        |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivityQHOline.java             |   25 
 app/src/main/res/layout/activity_login.xml                                                             |    5 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivityQHOline.java         |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivityQHOline.java   |    6 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java               |   25 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NewCardActivity.java                         |    8 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCardHN.java                                |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseActivity.java             |   30 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivityQHOline.java       |   75 
 qihealonelibrary/src/main/cpp/qihealone-native-lib.cpp                                                 |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivityQHOline.java    |   22 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcWriteHelper.java                       |   53 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcReadHelper.java                        |  124 +
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java     |    4 
 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java                                        |   10 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/HNBaseCard.java                                  |   34 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivityQHOline.java     |   14 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivityQHOline.java        |   19 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivityQHOline.java    |    4 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCardHN.java                                  |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/BaseCard.java                                     |   30 
 qihealonelibrary/src/main/AndroidManifest.xml                                                          |   40 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java              |   20 
 henanlibrary/src/main/java/com/dayu/henanlibrary/tools/HNBaseHelper.java                               |   38 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/QHBaseNFCHelper.java                    |   21 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java       |   16 
 qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp                                               |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java           |    2 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseActivity.java                          |   20 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivityQHOline.java       |   12 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivityQHAlone.java      |   10 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivityQHOline.java         |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java            |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java    |    2 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java           |    3 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java     |    6 
 baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java                           |  115 +
 qiheonlinelibrary/src/main/AndroidManifest.xml                                                         |   48 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCardHN.java                                  |    8 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivityQHOline.java     |   28 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseActivity.java           |   30 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java         |   13 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivityQHOline.java           |   38 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java               |    8 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java      |    4 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java                           |  111 +
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/CardCommonState.java                          |   13 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivityQHAlone.java   |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivityQHOline.java   |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivityQHOline.java    |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivityQHOline.java    |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivityQHOline.java          |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java                     |  281 +++
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java         |   20 
 baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseActivity.java                              |   29 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseNfcActivity.java                       |   49 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivityQHOline.java      |   12 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/AdminSetupActivity.java                      |    1 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java                    |  517 -----
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/SysActivity.java                             |   24 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java      |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java                          |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivityQHOline.java   |   26 
 baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseUserCardCard.java                              |   24 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCardHN.java                                 |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java                  |    8 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCardHN.java                    |    6 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java                     |   22 
 henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NFCWriteHelper.java                             |  197 --
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivityQHAlone.java      |    7 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/AdminCardDialog.java                   |   14 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeDetail.java                          |    6 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java                 |    7 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseNfcActivity.java          |   42 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java          |   14 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java                      |  456 -----
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java             |   22 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NFCWriteHelper.java                     |  181 -
 henanlibrary/src/main/java/com/dayu/henanlibrary/utils/CardCommon.java                                 |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java                    |    4 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/ReadCardAcitivy.java                         |   28 
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java      |    4 
 baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseManagerToUserCard.java                         |   21 
 henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCardHN.java                             |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNFCHelper.java                            |   35 
 henanlibrary/src/main/cpp/henan-native-lib.cpp                                                         |    2 
 /dev/null                                                                                              |  106 -
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivityQHOline.java       |   41 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/QHBaseNFCHelper.java                  |   27 
 henanlibrary/src/main/java/com/dayu/henanlibrary/tools/WriteCardUtils.java                             |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivityQHOline.java     |   10 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivityQHOline.java  |    2 
 115 files changed, 2,434 insertions(+), 2,544 deletions(-)

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 95354c4..f6d5155 100644
--- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -23,9 +23,9 @@
 import com.dayu.henanlibrary.HeNanApplication;
 import com.dayu.henanlibrary.dao.HNBaseDaoSingleton;
 
-import com.dayu.qihealonelibrary.activity.HomeActivity;
+import com.dayu.qihealonelibrary.activity.HomeActivityQHAlone;
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
-import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase;
+import com.dayu.qiheonlinelibrary.activity.HomeActivityQHOline;
 import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton;
 import com.dayu.recharge.MyApplication;
 import com.dayu.recharge.databinding.ActivityLoginBinding;
@@ -64,6 +64,7 @@
             clickNumber++;
             if (clickNumber == 20) {
                 choesLibrary();
+                clickNumber = 0;
             }
 
         });
@@ -115,6 +116,7 @@
     private void choesLibrary() {
 
         LibraryDialog dialog = new LibraryDialog(this, type -> {
+            binding.nameLL.setVisibility(View.GONE);
             if (type == BaseCommon.HeNanLibrary) {
                 getHNPermission();
             } else if (type == BaseCommon.QHOnLineLibrary) {
@@ -130,9 +132,9 @@
         if (MyApplication.myApplication.libraryType == BaseCommon.HeNanLibrary) {
             startActivity(new Intent(LoginActivity.this, com.dayu.henanlibrary.activity.HomeActivity.class));
         } else if (MyApplication.myApplication.libraryType == BaseCommon.QHAloneLibrary) {
-            startActivity(new Intent(LoginActivity.this, HomeActivity.class));
+            startActivity(new Intent(LoginActivity.this, HomeActivityQHAlone.class));
         } else if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) {
-            startActivity(new Intent(LoginActivity.this, com.dayu.qiheonlinelibrary.activity.HomeActivity.class));
+            startActivity(new Intent(LoginActivity.this, HomeActivityQHOline.class));
         }
         LoginActivity.this.finish();
     }
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 59d8d49..a3d7357 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -45,7 +45,7 @@
                 android:hint="璇疯緭鍏ヨ处鍙�"
                 android:maxLines="1"
                 android:singleLine="true"
-                android:text="" />
+                android:text="zuoxiao" />
         </LinearLayout>
         <LinearLayout
             android:layout_width="match_parent"
@@ -66,7 +66,8 @@
                 android:layout_height="wrap_content"
                 android:hint="鍒濆瀵嗙爜涓烘暟瀛�1-6"
                 android:inputType="textPassword"
-                android:text="" />
+
+                android:text="ZX@@123qwA" />
         </LinearLayout>
 
 
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseActivity.java b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseActivity.java
index 95b5e0d..cb62a5f 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseActivity.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseActivity.java
@@ -5,11 +5,17 @@
 import android.content.pm.Signature;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.View;
 
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.room.RoomDatabase;
 
+import com.dayu.baselibrary.R;
 import com.dayu.baselibrary.dao.AppDatabase;
 import com.dayu.baselibrary.dao.BaseDaoSingleton;
+import com.dayu.baselibrary.view.TitleBar;
+
+import java.lang.reflect.Field;
 
 /**
  * Created by zuoxiao on 2018/12/20.
@@ -22,6 +28,9 @@
 
     public AppDatabase baseBaseDao;
 
+
+    public TitleBar titleBar = null;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -31,7 +40,27 @@
             this.finish();
         }
         baseBaseDao = BaseDaoSingleton.getInstance(this);
+    }
 
+
+    @Override
+    public void setContentView(View layoutResID) {
+        super.setContentView(layoutResID);
+        try {
+            int id = getResources().getIdentifier("titleBar", "id", getPackageName());
+            View view = findViewById(id);
+            if (view != null && view instanceof TitleBar) {
+                titleBar = (TitleBar) view;
+                titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        finish();
+                    }
+                });
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java
new file mode 100644
index 0000000..2bbdda6
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java
@@ -0,0 +1,115 @@
+package com.dayu.baselibrary.activity;
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+
+import com.dayu.baselibrary.tools.nfc.NfcCommonData;
+import com.dayu.baselibrary.utils.TipUtil;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 16:31
+ * 澶囨敞锛�
+ * * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
+ * * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
+ * * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
+ * * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
+ */
+public abstract class BaseNfcActivity extends BaseActivity {
+    protected NfcAdapter mNfcAdapter;
+    private PendingIntent mPendingIntent;
+    public static int adapterType = NfcCommonData.defaultType;
+
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        switch (adapterType) {
+            case NfcCommonData.defaultType:
+                onNfcBack(intent);
+                break;
+        }
+    }
+
+    /**
+     * NFC瀵诲埌鍗″悗鐨勫洖璋�
+     */
+    public abstract void onNfcBack(Intent intent);
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        //鍒ゆ柇鏄摢涓満鍨�
+        try {
+            Class.forName("com.pos.device.config.DevConfig");
+            adapterType = NfcCommonData.HuaZhiRongHai;
+        } catch (ClassNotFoundException e) {
+            adapterType = NfcCommonData.defaultType;
+        }
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        //姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
+        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
+        Intent intent = new Intent(this, getClass());
+        //涓�鏃︽埅鑾種FC娑堟伅锛屽氨浼氶�氳繃PendingIntent璋冪敤绐楀彛
+        mPendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
+    }
+
+    /**
+     * 鑾峰緱鐒︾偣锛屾寜閽彲浠ョ偣鍑�
+     */
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (!ifNFCUse(this)) {
+        }
+        //璁剧疆澶勭悊浼樹簬鎵�鏈夊叾浠朜FC鐨勫鐞�
+        if (mNfcAdapter != null)
+            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
+    }
+
+    /**
+     * 鏆傚仠Activity锛岀晫闈㈣幏鍙栫劍鐐癸紝鎸夐挳鍙互鐐瑰嚮
+     */
+    @Override
+    public void onPause() {
+        super.onPause();
+        //鎭㈠榛樿鐘舵��
+        if (mNfcAdapter != null)
+            mNfcAdapter.disableForegroundDispatch(this);
+
+
+    }
+
+
+    /**
+     * 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
+     *
+     * @return
+     */
+    protected Boolean ifNFCUse(Activity context) {
+        if (mNfcAdapter == null) {
+            TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�", new TipUtil.TipListener() {
+                @Override
+                public void onCancle() {
+                    BaseNfcActivity.this.finish();
+                }
+            });
+            return false;
+        }
+        if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) {
+            TipUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
+            return false;
+        }
+        return true;
+    }
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseManagerToUserCard.java b/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseManagerToUserCard.java
new file mode 100644
index 0000000..cfe2056
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseManagerToUserCard.java
@@ -0,0 +1,21 @@
+package com.dayu.baselibrary.bean;
+
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-26
+ * Time: 15:41
+ * 澶囨敞锛�
+ */
+public abstract class BaseManagerToUserCard {
+    public  BaseManagerToUserCard getBean(List<byte[]> data) {
+        return null;
+    }
+
+    public abstract byte[] getZeroBytes();
+
+    public abstract byte[] getOneBytes();
+
+    public abstract byte[] getTwoBytes();
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseUserCardCard.java b/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseUserCardCard.java
new file mode 100644
index 0000000..3fd4727
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/bean/BaseUserCardCard.java
@@ -0,0 +1,24 @@
+package com.dayu.baselibrary.bean;
+
+import com.dayu.baselibrary.tools.BaseCard;
+
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 11:03
+ * 澶囨敞锛氭墍鏈夌敤鎴峰崱鐖剁被
+ */
+public abstract class BaseUserCardCard extends BaseCard {
+    public  BaseUserCardCard getBean(List<byte[]> data) {
+        return null;
+    }
+
+    public abstract byte[] getZeroBytes();
+
+    public abstract byte[] getOneBytes();
+
+    public abstract byte[] getTwoBytes();
+//    public abstract
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/BaseCard.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/BaseCard.java
new file mode 100644
index 0000000..f364826
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/BaseCard.java
@@ -0,0 +1,30 @@
+package com.dayu.baselibrary.tools;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 16:00
+ * 澶囨敞锛氭墍鏈塩ard绫荤殑椤剁骇鐖剁被
+ */
+public class BaseCard {
+    /**
+     * 鍓�15涓瓧鑺傜畻鏈疮鍔犲拰 涓嶅惈杩涗綅
+     *
+     * @param data 婧愭暟鎹�
+     * @return 16杩涘埗
+     */
+    public byte getByteSum(byte[] data) {
+        if (data != null) {
+            int sum = 0;
+            for (byte b : data) {
+                sum += b & 0xFF; // & 0xFF 鍙互灏嗗瓧鑺傛墿灞曚负姝f暣鏁帮紝閬垮厤绗﹀彿浣嶇殑褰卞搷
+            }
+            String hex = HexUtil.get10to16CompleteHex(sum);
+            hex = HexUtil.spaceHex(hex);
+            String[] hexArr = hex.split(" ");
+            return HexUtil.hexToByte(hexArr[hexArr.length - 1]);
+        }
+        return 0;
+    }
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNFCHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNFCHelper.java
new file mode 100644
index 0000000..249b1b0
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNFCHelper.java
@@ -0,0 +1,35 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 10:06
+ * 澶囨敞锛歂FC鎿嶄綔鐖剁被
+ */
+public class BaseNFCHelper {
+
+    /**
+     * 榛樿瀵嗙爜锛堢櫧鍗″瘑鐮侊級ffffffffffff
+     */
+    public static byte[] defauleKey;
+
+    /**
+     * 褰撳墠椤圭洰浣跨敤鐨勫瘑鐮�
+     */
+    public static byte[] companyKey;
+
+    /**
+     * 瀵嗙爜闆嗗悎
+     */
+    public static List<byte[]> listKeyA = new ArrayList<>();
+
+
+    //瀵嗙爜a鍖�
+    public static String companyKeyA;
+    //瀵嗙爜B鍖�
+    public static String companyKeyB;
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcReadHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcReadHelper.java
new file mode 100644
index 0000000..933ff26
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcReadHelper.java
@@ -0,0 +1,124 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import com.dayu.baselibrary.bean.BaseManagerToUserCard;
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 11:41
+ * 澶囨敞锛氫笉鍚孨FC璇诲彇鐨勭埗绫�
+ */
+public abstract class BaseNfcReadHelper extends BaseNFCHelper {
+
+
+    public abstract String getCradType();
+
+    /**
+     * 璇诲彇M1鍗$殑鍏ㄩ儴淇℃伅
+     *
+     * @param callback
+     */
+    public abstract void getAllData(final NFCCallMapback callback);
+
+
+    /**
+     * 鑾峰彇1鎵囧尯淇℃伅
+     *
+     * @param callback
+     */
+    public abstract void getOneSectorData(NFCCallListback callback);
+
+
+    /**
+     * 鑾峰彇鍗″彿
+     *
+     * @return
+     */
+    public abstract String getCardNumber();
+
+    /**
+     * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙�
+     *
+     * @return
+     */
+    public abstract String getCradTypeAndCardNumber();
+
+    /**
+     * 璇诲彇NFC鍗$殑鐗瑰畾鎵囧尯淇℃伅
+     *
+     * @param a        鎵囧尯
+     * @param b        鍧�
+     * @param callback
+     */
+    public abstract void getData(final int a, final int b, final NFCCallByteback callback);
+
+
+    /**
+     * 鍚屾鑾峰彇
+     *
+     * @return
+     */
+    public abstract List<byte[]> getOnesectorData();
+
+
+    /**
+     * 鍚屾鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
+    public abstract BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard);
+
+
+    public BaseManagerToUserCard getManagerToUserCardData(BaseManagerToUserCard baseManagerToUserCard) {
+        return null;
+    }
+
+    /**
+     * 杩斿洖鐩戝惉绫�
+     */
+    public interface NFCCallMapback {
+        /**
+         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
+         *
+         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
+         */
+        void callBack(Map<String, List<byte[]>> data);
+
+
+        void error(int code);
+    }
+
+    /**
+     * 杩斿洖鐩戝惉绫�
+     */
+    public interface NFCCallListback {
+        /**
+         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
+         *
+         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
+         */
+        void callBack(List<byte[]> data);
+
+
+        void error(int code);
+    }
+
+
+    public interface NFCCallByteback {
+        /**
+         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
+         *
+         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
+         */
+
+        void callBack(byte[] data);
+
+        void error(int code);
+    }
+
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcWriteHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcWriteHelper.java
new file mode 100644
index 0000000..20ee427
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/BaseNfcWriteHelper.java
@@ -0,0 +1,53 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.nfc.tech.MifareClassic;
+
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 16:17
+ * 澶囨敞锛�
+ */
+public abstract class BaseNfcWriteHelper extends BaseNFCHelper {
+    /**
+     * 鍐欏崱
+     *
+     * @param userCard 鐢ㄦ埛鍗″唴瀹�
+     * @param
+     */
+    public abstract boolean writeUserData(BaseUserCardCard userCard);
+
+    /**
+     * 鍐欏崱
+     *
+     * @param str 涔﹀啓鍐呭锛�16涓瓧鑺�
+     * @param a   涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟)
+     * @param b   涔﹀啓鐨勫潡(浠�0寮�濮嬫暟)
+     * @param
+     */
+    public abstract boolean writeData(byte[] str, int a, int b);
+
+
+    /**
+     * 淇敼瀵嗙爜
+     *
+     * @param a 涔﹀啓鐨勬墖鍖�
+     *          //     * @param callback 杩斿洖鐩戝惉
+     */
+    public boolean changePasword(int a, MifareClassic mfc) {
+        return false;
+    }
+
+    ;
+
+    /**
+     * 鍒濆鍖栧崱
+     *
+     * @return
+     */
+    public boolean initCard() {
+        return false;
+    }
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/CardCommonState.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/CardCommonState.java
new file mode 100644
index 0000000..a3b2c2f
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/CardCommonState.java
@@ -0,0 +1,13 @@
+package com.dayu.baselibrary.tools.nfc;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 11:11
+ * 澶囨敞锛歯fc鍏叡鐘舵��
+ */
+public class CardCommonState {
+    public static final int ERROR = -1;
+    //杩炴帴涓柇 鎻愮ず鐢ㄦ埛閲嶆柊杩炴帴鎴栨彁绀虹敤鎴烽噸鏂伴潬杩戝崱鐗�
+    public static final int ERROR_MOVE = -2;
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java
new file mode 100644
index 0000000..bcad792
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcReadHelper.java
@@ -0,0 +1,605 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.nfc.Tag;
+import android.nfc.tech.MifareClassic;
+import android.util.Log;
+
+import com.dayu.baselibrary.bean.BaseManagerToUserCard;
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.utils.BaseCommon;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 10:33
+ * 澶囨敞锛氬師鐢熻鍐欏崱鏂瑰紡
+ */
+public class NativeNfcReadHelper extends BaseNfcReadHelper {
+    private Tag tag;
+    //    private NFCCallback callback;
+    private static NativeNfcReadHelper helper;
+
+
+    public NativeNfcReadHelper(Intent intent, Activity activity) {
+        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+    }
+
+    /**
+     * 鍗曚緥鍒濆鍖�
+     *
+     * @param intent
+     * @return
+     */
+    public static NativeNfcReadHelper getInstence(Intent intent, Activity activity) {
+        if (helper == null) {
+            helper = new NativeNfcReadHelper(intent, activity);
+        }
+        return helper;
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
+    public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) {
+        if (userCardCard!=null){
+            BaseUserCardCard userCard = null;
+            Map<String, List<byte[]>> map = new HashMap<>();
+            MifareClassic mfc = MifareClassic.get(tag);
+            if (null != mfc) {
+                try {
+                    //閾炬帴NFC
+                    mfc.connect();
+                    //鑾峰彇鎵囧尯鏁伴噺
+                    int count = mfc.getSectorCount();
+                    //瀛樺偍绌洪棿
+                    int size = mfc.getSize();
+                    //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                    boolean flag = false;
+                    List<byte[]> list = new ArrayList<>();
+                    //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                    boolean isOpen = false;
+                    for (int i = 0; i < listKeyA.size(); i++) {
+                        if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) {
+                            isOpen = true;
+                            break;
+                        }
+                    }
+                    if (isOpen) {
+                        //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                        int bCount = mfc.getBlockCountInSector(1);
+                        //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                        int bIndex = mfc.sectorToBlock(1);
+                        //String data1 = "";
+                        for (int j = 0; j < bCount; j++) {
+                            //璇诲彇鏁版嵁
+                            byte[] data = null;
+                            try {
+                                data = mfc.readBlock(bIndex);
+                                bIndex++;
+                                list.add(data);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                        flag = true;
+                    }
+
+                    if (flag) {
+                        userCard = userCardCard.getBean(list);
+                        return userCard;
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                } finally {
+                    try {
+                        mfc.close();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    public String getCradType() {
+
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                mfc.connect();
+                boolean isOpen = false;
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(1);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.byteToHex(data[0]);
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                        return hex;
+                    }
+
+                } else {
+                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
+                    return BaseCommon.CARD_TYPE_ERROR2;
+                }
+            } catch (IOException e) {
+                return BaseCommon.CARD_TYPE_ERROR1;
+            } finally {
+                try {
+                    mfc.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅
+     *
+     * @param callback
+     */
+    public void getAllData(final NFCCallMapback callback) {
+        Map<String, List<byte[]>> map = new HashMap<>();
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鑾峰彇鎵囧尯鏁伴噺
+                int count = mfc.getSectorCount();
+                //瀛樺偍绌洪棿
+                int size = mfc.getSize();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                for (int i = 0; i < count; i++) {
+                    List<byte[]> list = new ArrayList<>();
+                    //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                    boolean isOpen = false;
+                    for (int j = 0; j < listKeyA.size(); j++) {
+                        if (mfc.authenticateSectorWithKeyA(i, listKeyA.get(i))) {
+                            isOpen = true;
+                            break;
+                        }
+                    }
+                    if (isOpen) {
+                        //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                        int bCount = mfc.getBlockCountInSector(i);
+                        //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                        int bIndex = mfc.sectorToBlock(i);
+                        //String data1 = "";
+                        for (int j = 0; j < bCount; j++) {
+                            //璇诲彇鏁版嵁
+                            byte[] data = null;
+                            try {
+                                data = mfc.readBlock(bIndex);
+                                bIndex++;
+                                list.add(data);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                        flag = true;
+                    }
+                    map.put(i + "", list);
+                }
+                if (flag) {
+                    callback.callBack(map);
+                } else {
+                    callback.error(CardCommonState.ERROR);
+                }
+            } catch (IOException e) {
+                callback.error(CardCommonState.ERROR_MOVE);
+                e.printStackTrace();
+            } catch (Exception e) {
+                callback.error(CardCommonState.ERROR);
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 鑾峰彇1鎵囧尯淇℃伅
+     *
+     * @param callback
+     */
+    public void getOneSectorData(NFCCallListback callback) {
+
+
+        MifareClassic mfc = null;
+        try {
+            mfc = MifareClassic.get(tag);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                List<byte[]> list = new ArrayList<>();
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = false;
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    flag = true;
+                }
+                if (flag) {
+                    callback.callBack(list);
+                } else {
+                    callback.error(CardCommonState.ERROR);
+                }
+            } catch (IOException e) {
+                callback.error(CardCommonState.ERROR_MOVE);
+                e.printStackTrace();
+            } catch (Exception e) {
+                callback.error(CardCommonState.ERROR);
+                e.printStackTrace();
+            } finally {
+
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 璇诲彇NFC鍗$殑鐗瑰畾鎵囧尯淇℃伅
+     *
+     * @param a        鎵囧尯
+     * @param b        鍧�
+     * @param callback
+     */
+    public void getData(final int a, final int b, final NFCCallByteback callback) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                Map<String, List<String>> map = new HashMap<>();
+                MifareClassic mfc = MifareClassic.get(tag);
+                if (null != mfc) {
+                    try {
+                        mfc.connect();
+                        int count = mfc.getSectorCount();
+                        if (a < 0 || a > count - 1) {
+                            callback.error(CardCommonState.ERROR);
+                            return;
+                        }
+                        int bCount = mfc.getBlockCountInSector(a);
+                        if (b < 0 || b > bCount - 1) {
+                            callback.error(CardCommonState.ERROR);
+                            return;
+                        }
+
+                        int type = mfc.getType();//鑾峰彇TAG鐨勭被鍨�
+                        String typeS = "";
+                        switch (type) {
+                            case MifareClassic.TYPE_CLASSIC:
+                                typeS = "TYPE_CLASSIC";
+                                break;
+                            case MifareClassic.TYPE_PLUS:
+                                typeS = "TYPE_PLUS";
+                                break;
+                            case MifareClassic.TYPE_PRO:
+                                typeS = "TYPE_PRO";
+                                break;
+                            case MifareClassic.TYPE_UNKNOWN:
+                                typeS = "TYPE_UNKNOWN";
+                                break;
+                        }
+                        boolean isOpen = false;
+                        for (int i = 0; i < listKeyA.size(); i++) {
+                            if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) {
+                                isOpen = true;
+                                break;
+                            }
+                        }
+                        if (isOpen) {
+                            int bIndex = mfc.sectorToBlock(a);
+                            byte[] data = mfc.readBlock(bIndex + b);
+                            callback.callBack(data);
+                        } else {
+                            callback.error(CardCommonState.ERROR);
+                        }
+                    } catch (IOException e) {
+                        callback.error(CardCommonState.ERROR_MOVE);
+                        e.printStackTrace();
+                    } catch (Exception e) {
+                        callback.error(CardCommonState.ERROR);
+                    } finally {
+                        try {
+                            mfc.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+        }).start();
+    }
+
+
+    @Override
+    public String getCardNumber() {
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                mfc.connect();
+                //鑾峰彇褰撳墠鍗″彿
+                boolean isOpen = false;
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(0);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
+                        hex = HexUtil.spaceHex(hex);
+                        hex = HexUtil.HighLowHex(hex);
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                        return hex.toUpperCase();
+                    }
+                }
+
+            } catch (IOException e) {
+                return BaseCommon.CARD_TYPE_ERROR1;
+            } finally {
+                try {
+                    mfc.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙�
+     *
+     * @return
+     */
+    @Override
+    public String getCradTypeAndCardNumber() {
+
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                mfc.connect();
+                StringBuilder strData = new StringBuilder();
+                //鑾峰彇褰撳墠鍗″彿
+                boolean isOpen = false;
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(0);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
+                        hex = HexUtil.spaceHex(hex);
+                        hex = HexUtil.HighLowHex(hex);
+                        strData.append(hex);
+                        strData.append(",");
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                    }
+                }
+                //鑾峰彇鍗$墖绫诲瀷
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    int bIndex = mfc.sectorToBlock(1);
+                    byte[] data = mfc.readBlock(bIndex + 0);
+                    if (data != null && data.length > 0) {
+                        String hex = HexUtil.byteToHex(data[0]);
+                        strData.append(hex);
+                        Log.i("NFCWreatActivity", "hex===" + hex);
+                        return strData.toString().toUpperCase();
+                    }
+                } else {
+                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
+                    return BaseCommon.CARD_TYPE_ERROR2;
+                }
+            } catch (IOException e) {
+                return BaseCommon.CARD_TYPE_ERROR1;
+            } finally {
+                try {
+                    mfc.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return "";
+    }
+
+
+    @Override
+    public List<byte[]> getOnesectorData() {
+        MifareClassic mfc = null;
+        try {
+            mfc = MifareClassic.get(tag);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        List<byte[]> list = new ArrayList<>();
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = false;
+                for (int i = 0; i < listKeyA.size(); i++) {
+                    if (mfc.authenticateSectorWithKeyA(1, listKeyA.get(i))) {
+                        isOpen = true;
+                        break;
+                    }
+                }
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                    return list;
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
+    public BaseManagerToUserCard getManagerToUserCardData(BaseManagerToUserCard baseManagerToUserCard) {
+
+        BaseManagerToUserCard managerToUserCard = null;
+        Map<String, List<byte[]>> map = new HashMap<>();
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鑾峰彇鎵囧尯鏁伴噺
+                int count = mfc.getSectorCount();
+                //瀛樺偍绌洪棿
+                int size = mfc.getSize();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                List<byte[]> list = new ArrayList<>();
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
+                if (!isOpen) {
+                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
+                }
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    flag = true;
+                }
+
+                if (flag) {
+                    managerToUserCard = baseManagerToUserCard.getBean(list);
+                    return managerToUserCard;
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
new file mode 100644
index 0000000..ef15209
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NativeNfcWriteHelper.java
@@ -0,0 +1,281 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.nfc.Tag;
+import android.nfc.tech.MifareClassic;
+import android.util.Log;
+
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+import com.dayu.baselibrary.tools.HexUtil;
+
+import java.io.IOException;
+
+/**
+ * author: zuo
+ * Date: 2024-09-25
+ * Time: 11:26
+ * 澶囨敞锛�
+ */
+public class NativeNfcWriteHelper extends BaseNfcWriteHelper {
+    private Tag tag;
+
+    private static NativeNfcWriteHelper helper;
+
+    public NativeNfcWriteHelper(Intent intent, Activity activity) {
+        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+    }
+
+    /**
+     * 鍗曚緥鍒濆鍖�
+     *
+     * @param intent
+     * @return
+     */
+    public static NativeNfcWriteHelper getInstence(Intent intent, Activity activity) {
+        if (helper == null) {
+            helper = new NativeNfcWriteHelper(intent, activity);
+        }
+        return helper;
+    }
+
+
+    /**
+     * 鍐欏崱
+     *
+     * @param userCard 鐢ㄦ埛鍗″唴瀹�
+     * @param
+     */
+    public boolean writeUserData(BaseUserCardCard userCard) {
+        if (userCard != null) {
+            int a = 1;
+            try {
+                MifareClassic mfc = MifareClassic.get(tag);
+                if (null != mfc) {
+                    try {
+                        //杩炴帴NFC
+                        mfc.connect();
+                        //楠岃瘉鎵囧尯瀵嗙爜
+                        boolean isOpen = false;
+                        for (int i = 0; i < listKeyA.size(); i++) {
+                            if (mfc.authenticateSectorWithKeyA(a, listKeyA.get(i))) {
+                                isOpen = true;
+                                if (listKeyA.get(i).equals(defauleKey)) {
+                                    //褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
+                                    changePasword(a, mfc);
+                                }
+                                break;
+                            }
+                        }
+                        if (isOpen) {
+                            for (int b = 0; b < 3; b++) {
+                                byte[] data;
+                                if (b == 0) {
+                                    data = userCard.getZeroBytes();
+                                } else if (b == 1) {
+                                    data = userCard.getOneBytes();
+                                } else {
+                                    data = userCard.getTwoBytes();
+                                }
+                                int bIndex = mfc.sectorToBlock(a);
+                                //鍐欏崱
+                                mfc.writeBlock(bIndex + b, data);
+                            }
+                            return true;
+                        }
+                        return false;
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        return false;
+                    } finally {
+                        try {
+                            mfc.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                return false;
+            }
+        }
+        return false;
+    }
+
+
+    /**
+     * 鍐欏崱
+     *
+     * @param str 涔﹀啓鍐呭锛�16涓瓧鑺�
+     * @param a   涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟)
+     * @param b   涔﹀啓鐨勫潡(浠�0寮�濮嬫暟)
+     * @param
+     */
+    public boolean writeData(byte[] str, int a, int b) {
+        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
+        if (str.length <= 16) {
+            try {
+                MifareClassic mfc = MifareClassic.get(tag);
+                if (null != mfc) {
+                    try {
+                        //杩炴帴NFC
+                        mfc.connect();
+                        //鑾峰彇鎵囧尯鏁伴噺
+                        int count = mfc.getSectorCount();
+                        //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
+                        if (a > count - 1 || a < 0) {
+                            return false;
+                        }
+                        //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
+                        int bCount = mfc.getBlockCountInSector(a);
+                        //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
+                        if (b > bCount - 1 || b < 0) {
+                            return false;
+                        }
+                        //楠岃瘉鎵囧尯瀵嗙爜
+                        boolean isOpen = false;
+                        for (int i = 0; i < listKeyA.size(); i++) {
+                            if (mfc.authenticateSectorWithKeyA(0, listKeyA.get(i))) {
+                                isOpen = true;
+                                if (listKeyA.get(i).equals(defauleKey)) {
+                                    //褰撳墠涓洪粯璁ょ櫧鍗″瘑鐮佹椂鍐欏崱鏃朵慨鏀瑰瘑鐮�
+                                    changePasword(a, mfc);
+                                }
+                                break;
+                            }
+                        }
+                        if (isOpen) {
+                            int bIndex = mfc.sectorToBlock(a);
+                            //鍐欏崱
+                            mfc.writeBlock(bIndex + b, str);
+                            return true;
+                        }
+                        return false;
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        return false;
+                    } finally {
+                        try {
+                            mfc.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                return false;
+            }
+        }
+        return false;
+    }
+
+
+    /**
+     * 淇敼瀵嗙爜
+     *
+     * @param a 涔﹀啓鐨勬墖鍖�
+     *          //     * @param callback 杩斿洖鐩戝惉
+     */
+    public boolean changePasword(int a, MifareClassic mfc) {
+
+        byte[] data = new byte[16];
+        if (null != mfc) {
+            try {
+
+                //灏嗗瘑鐮佽浆鎹负keyA
+                byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
+                for (int i = 0; i < dataA.length; i++) {
+                    data[i] = dataA[i];
+                }
+                //杈撳叆鎺у埗浣�
+                data[6] = (byte) 0xFF;
+                data[7] = (byte) 0x07;
+                data[8] = (byte) 0x80;
+                data[9] = (byte) 0x69;
+                byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
+                //灏嗗瘑鐮佽浆鎹负KeyB
+                for (int i = 0; i < dataB.length; i++) {
+                    data[i + 10] = dataB[i];
+                }
+                int bIndex = mfc.sectorToBlock(a);
+                int bCount = mfc.getBlockCountInSector(a);
+                //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
+                mfc.writeBlock(bIndex + bCount - 1, data);
+                return true;
+            } catch (Exception e) {
+                e.printStackTrace();
+                return false;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 鍒濆鍖栧崱
+     *
+     * @return
+     */
+    public boolean initCard() {
+        try {
+            MifareClassic mfc = MifareClassic.get(tag);
+            if (null != mfc) {
+                try {
+                    //杩炴帴NFC
+                    mfc.connect();
+                    //鑾峰彇鎵囧尯鏁伴噺
+                    int count = mfc.getSectorCount();
+                    byte[] data = new byte[16];
+                    String initData = "FFFFFFFFFFFFFF078069FFFFFFFFFFFF";
+                    byte[] initDataBytes = HexUtil.hexToByteArray(initData);
+                    for (int sector = 0; sector < count; sector++) {
+                        //楠岃瘉鎵囧尯瀵嗙爜
+                        boolean isOpen = false;
+                        for (int i = 0; i < listKeyA.size(); i++) {
+                            if (mfc.authenticateSectorWithKeyA(sector, listKeyA.get(i))) {
+                                isOpen = true;
+                                break;
+                            }
+                        }
+                        if (isOpen) {
+                            //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
+                            int blockCount = mfc.getBlockCountInSector(sector);
+                            int blockIndex = mfc.sectorToBlock(sector);
+                            for (int block = 0; block < blockCount; block++) {
+                                // 璺宠繃绗� 0 鎵囧尯鐨勭 0 鍧�
+                                if (sector == 0 && block == 0) {
+                                    blockIndex++;
+                                    continue;
+                                }
+
+                                if (block < 3) {
+                                    mfc.writeBlock(blockIndex, data);
+                                } else {
+                                    mfc.writeBlock(blockIndex, initDataBytes);
+                                }
+                                //鍐欏崱
+                                blockIndex++;
+                            }
+                        }
+                    }
+                    return true;
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    return false;
+                } finally {
+                    try {
+                        mfc.close();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+        return false;
+    }
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java
new file mode 100644
index 0000000..d38ca8a
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java
@@ -0,0 +1,21 @@
+package com.dayu.baselibrary.tools.nfc;
+
+/**
+ * author: zuo
+ * Date: 2024-09-26
+ * Time: 13:31
+ * 澶囨敞锛歯fc鐩稿叧甯搁噺
+ */
+public class NfcCommonData {
+
+    /**
+     * 榛樿鐨勮皟鐢ㄦ柟寮忥紙瀹夊崜鍘熺敓锛�
+     */
+    public final static int defaultType = 0;
+    /**
+     * 鍗庢櫤铻嶆捣鐨凷DK
+     */
+    public final static int HuaZhiRongHai = 1;
+
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java
new file mode 100644
index 0000000..fcbae8b
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java
@@ -0,0 +1,111 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.app.Activity;
+import android.content.Intent;
+
+import com.dayu.baselibrary.activity.BaseNfcActivity;
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-26
+ * Time: 11:16
+ * 澶囨敞锛氭墍鏈夌殑瀛怤FC璇诲彇绫荤殑瀵艰埅绫伙紝璇ョ被鏍规嵁褰撳墠鏈哄瀷璋冨彇涓嶅悓瀹炵幇鏂瑰紡
+ */
+public class NfcReadAdapter extends BaseNfcReadHelper {
+
+    NativeNfcReadHelper nativeNfcReadHelper;
+
+    public NfcReadAdapter(Intent intent, Activity activity) {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                nativeNfcReadHelper = new NativeNfcReadHelper(intent, activity);
+                break;
+        }
+
+    }
+
+    @Override
+    public String getCradType() {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                return nativeNfcReadHelper.getCradType();
+
+        }
+        return "";
+    }
+
+    @Override
+    public void getAllData(NFCCallMapback callback) {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                nativeNfcReadHelper.getAllData(callback);
+                break;
+
+        }
+    }
+
+    @Override
+    public void getOneSectorData(NFCCallListback callback) {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                nativeNfcReadHelper.getOneSectorData(callback);
+                break;
+
+        }
+    }
+
+    @Override
+    public String getCardNumber() {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                return nativeNfcReadHelper.getCardNumber();
+
+
+        }
+        return "";
+    }
+
+    @Override
+    public String getCradTypeAndCardNumber() {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                return nativeNfcReadHelper.getCradTypeAndCardNumber();
+
+
+        }
+        return "";
+    }
+
+    @Override
+    public void getData(int a, int b, NFCCallByteback callback) {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                nativeNfcReadHelper.getData(a, b, callback);
+                break;
+        }
+    }
+
+    @Override
+    public List<byte[]> getOnesectorData() {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                return nativeNfcReadHelper.getOnesectorData();
+
+
+        }
+        return null;
+    }
+
+    @Override
+    public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) {
+        switch (BaseNfcActivity.adapterType) {
+            case NfcCommonData.defaultType:
+                return nativeNfcReadHelper.getUserCardData(userCardCard);
+        }
+        return null;
+    }
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java
new file mode 100644
index 0000000..bed540e
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java
@@ -0,0 +1,55 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.nfc.tech.MifareClassic;
+
+import com.dayu.baselibrary.activity.BaseNfcActivity;
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+
+/**
+ * author: zuo
+ * Date: 2024-09-26
+ * Time: 11:26
+ * 澶囨敞锛�
+ */
+public class NfcWriteAdapter extends BaseNfcWriteHelper {
+    NativeNfcWriteHelper nativeNfcWriteHelper;
+    public NfcWriteAdapter(Intent intent, Activity activity) {
+        switch (BaseNfcActivity.adapterType){
+            case NfcCommonData.defaultType:
+                nativeNfcWriteHelper=new NativeNfcWriteHelper(intent,activity);
+                break;
+        }
+    }
+
+    @Override
+    public boolean writeUserData(BaseUserCardCard userCard) {
+        switch (BaseNfcActivity.adapterType){
+            case NfcCommonData.defaultType:
+                return  nativeNfcWriteHelper.writeUserData(userCard);
+
+        }
+        return false;
+    }
+
+    @Override
+    public boolean writeData(byte[] str, int a, int b) {
+        switch (BaseNfcActivity.adapterType){
+            case NfcCommonData.defaultType:
+                return  nativeNfcWriteHelper.writeData(str,a,b);
+
+        }
+        return false;
+    }
+
+    @Override
+    public boolean changePasword(int a, MifareClassic mfc) {
+        switch (BaseNfcActivity.adapterType){
+            case NfcCommonData.defaultType:
+                return  nativeNfcWriteHelper.changePasword(a,mfc);
+
+        }
+        return false;
+    }
+}
diff --git a/henanlibrary/src/main/cpp/henan-native-lib.cpp b/henanlibrary/src/main/cpp/henan-native-lib.cpp
index 19e94b0..bea9627 100644
--- a/henanlibrary/src/main/cpp/henan-native-lib.cpp
+++ b/henanlibrary/src/main/cpp/henan-native-lib.cpp
@@ -41,7 +41,7 @@
 
 extern "C"
 JNIEXPORT jstring
-Java_com_dayu_henanlibrary_tools_BaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) {
+Java_com_dayu_henanlibrary_tools_HNBaseHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) {
     jmethodID getPackageManagerId = (env)->GetMethodID(contextClass, "getPackageManager","()Landroid/content/pm/PackageManager;");
     jmethodID getPackageNameId = (env)->GetMethodID(contextClass, "getPackageName","()Ljava/lang/String;");
     jmethodID signToStringId = (env)->GetMethodID(signatureClass, "toCharsString","()Ljava/lang/String;");
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/AdminSetupActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/AdminSetupActivity.java
index 8e7fc84..143a13c 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/AdminSetupActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/AdminSetupActivity.java
@@ -6,6 +6,7 @@
 import android.view.LayoutInflater;
 import android.view.inputmethod.InputMethodManager;
 
+import com.dayu.baselibrary.activity.BaseActivity;
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.henanlibrary.HeNanApplication;
 import com.dayu.henanlibrary.databinding.ActivityAdminSetupHnBinding;
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/BaseNfcActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/BaseNfcActivity.java
deleted file mode 100644
index bfa2776..0000000
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/BaseNfcActivity.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.dayu.henanlibrary.activity;
-
-/**
- * Created by zuo on 2018/12/2.
- */
-
-
-import android.app.Activity;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.os.Handler;
-import android.provider.Settings;
-
-import com.dayu.baselibrary.activity.BaseActivity;
-import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.baselibrary.utils.ToastUtil;
-import com.dayu.henanlibrary.card.UserCard;
-
-
-/**
- * Author:Created by Ricky on 2017/8/25.
- * Email:584182977@qq.com
- * Description:
- * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
- * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
- * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
- * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
- */
-public class BaseNfcActivity extends HNBaseActivity {
-
-    /**
-     * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
-     */
-    public final static int HAS_USER = 1;
-    /**
-     * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭�
-     */
-    public final static int NO_USER = 2;
-    /**
-     * 鍏呭��
-     */
-    public final static int RECHARGE = 3;
-
-    public final static int ERROR = -1;
-
-    protected NfcAdapter mNfcAdapter;
-    private PendingIntent mPendingIntent;
-
-    Handler handler;
-
-    volatile UserCard userCard;
-    /**
-     * onCreat->onStart->onResume->onPause->onStop->onDestroy
-     * 鍚姩Activity锛岀晫闈㈠彲瑙佹椂.
-     */
-
-
-    public static int READER_FLAGS =
-            NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        //姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
-        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
-        Intent intent = new Intent(this, getClass());
-
-        //涓�鏃︽埅鑾種FC娑堟伅锛屽氨浼氶�氳繃PendingIntent璋冪敤绐楀彛
-        mPendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
-
-//        mLoyaltyCardReader = new LoyaltyCardReader(this);
-//        if (mNfcAdapter != null) {
-//            mNfcAdapter.enableReaderMode(this, mLoyaltyCardReader, READER_FLAGS, null);
-//        }
-
-    }
-
-    /**
-     * 鑾峰緱鐒︾偣锛屾寜閽彲浠ョ偣鍑�
-     */
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (!ifNFCUse(this)) {
-
-        }
-        //璁剧疆澶勭悊浼樹簬鎵�鏈夊叾浠朜FC鐨勫鐞�
-        if (mNfcAdapter != null)
-            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
-    }
-
-    /**
-     * 鏆傚仠Activity锛岀晫闈㈣幏鍙栫劍鐐癸紝鎸夐挳鍙互鐐瑰嚮
-     */
-    @Override
-    public void onPause() {
-        super.onPause();
-        //鎭㈠榛樿鐘舵��
-        if (mNfcAdapter != null)
-            mNfcAdapter.disableForegroundDispatch(this);
-//            mNfcAdapter.disableReaderMode(this);
-
-    }
-
-//    @Override
-//    protected void onDestroy() {
-//        super.onDestroy();
-//        if (mNfcAdapter != null)
-//            mNfcAdapter.disableReaderMode(this);
-//    }
-
-    /**
-     * 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
-     *
-     * @return
-     */
-    protected Boolean ifNFCUse(Activity context) {
-        if (mNfcAdapter == null) {
-            TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�", new TipUtil.TipListener() {
-                @Override
-                public void onCancle() {
-                    BaseNfcActivity.this.finish();
-                }
-            });
-            return false;
-        }
-        if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) {
-            startActivity(new Intent(Settings.ACTION_NFC_SETTINGS));
-            ToastUtil.showLong("璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
-            return false;
-        }
-        return true;
-    }
-
-}
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseActivity.java
index 185b291..7d86764 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseActivity.java
@@ -16,7 +16,6 @@
 public class HNBaseActivity extends BaseActivity {
     private final String TAG = "BaseActivity";
 
-    public TitleBar titleBar = null;
     //z涓荤嚎绋嬫煡璇�
     public AppDatabase baseDao;
     //寮傛绾跨▼鏌ヨ
@@ -30,25 +29,6 @@
     }
 
 
-    @Override
-    protected void onResume() {
-        super.onResume();
-    }
-
-    @Override
-    public void setContentView(View layoutResID) {
-        super.setContentView(layoutResID);
-        try {
-            View view = findViewById(R.id.titleBar);
-
-            if (view != null && view instanceof TitleBar) {
-                titleBar = (TitleBar) view;
-                titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, v -> finish());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
 
 
 }
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseNfcActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseNfcActivity.java
new file mode 100644
index 0000000..22cec61
--- /dev/null
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HNBaseNfcActivity.java
@@ -0,0 +1,49 @@
+package com.dayu.henanlibrary.activity;
+
+/**
+ * Created by zuo on 2018/12/2.
+ */
+
+
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Settings;
+
+import com.dayu.baselibrary.activity.BaseNfcActivity;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.baselibrary.utils.ToastUtil;
+import com.dayu.henanlibrary.card.UserCardHN;
+import com.dayu.henanlibrary.dao.AppDatabase;
+import com.dayu.henanlibrary.dao.HNBaseDaoSingleton;
+
+
+/**
+ * Author:Created by Ricky on 2017/8/25.
+ * Email:584182977@qq.com
+ * Description:
+ * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
+ * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
+ * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
+ * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
+ */
+public abstract class HNBaseNfcActivity extends BaseNfcActivity {
+
+    UserCardHN userCard;
+
+    //z涓荤嚎绋嬫煡璇�
+    public AppDatabase baseDao;
+    //寮傛绾跨▼鏌ヨ
+    public AppDatabase asynchBaseDao;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        baseDao = HNBaseDaoSingleton.getInstance(this);
+        asynchBaseDao = HNBaseDaoSingleton.getAsynchInstance(this);
+    }
+
+}
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
index c6315bf..be76c16 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
@@ -10,6 +10,7 @@
 import android.view.View;
 import android.widget.Toast;
 
+import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.utils.AidlUtil;
 import com.dayu.baselibrary.utils.BaseCommon;
@@ -19,15 +20,15 @@
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.view.ConfirmDialog;
 import com.dayu.baselibrary.view.TitleBar;
-import com.dayu.henanlibrary.card.CleanCard;
-import com.dayu.henanlibrary.card.CleanUserCard;
-import com.dayu.henanlibrary.card.ConfigurationPowerCard;
+import com.dayu.henanlibrary.card.CleanCardHN;
+import com.dayu.henanlibrary.card.CleanUserCardHN;
+import com.dayu.henanlibrary.card.ConfigurationPowerCardHN;
 import com.dayu.henanlibrary.card.ConfigureDeviceRegistrationCrad;
 import com.dayu.henanlibrary.card.DomainCard;
-import com.dayu.henanlibrary.card.ManageCard;
-import com.dayu.henanlibrary.card.RegisteredCard;
-import com.dayu.henanlibrary.card.TestCard;
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.henanlibrary.card.ManageCardHN;
+import com.dayu.henanlibrary.card.RegisteredCardHN;
+import com.dayu.henanlibrary.card.TestCardHN;
+import com.dayu.henanlibrary.card.UserCardHN;
 import com.dayu.henanlibrary.databinding.ActivityWriteTextHnBinding;
 import com.dayu.henanlibrary.dbBean.AdminDataBean;
 import com.dayu.henanlibrary.dbBean.ElectricPriceBean;
@@ -56,7 +57,7 @@
  * Date: 2023-11-08 21:19
  * Description: nfc鍐欏崱鐣岄潰
  */
-public class NFCWreatActivity extends BaseNfcActivity {
+public class NFCWreatActivity extends HNBaseNfcActivity {
     public static String TAG = "NFCWreatActivity";
 
     boolean cleanFlag = false;
@@ -88,16 +89,16 @@
     Intent intent;
 
 
-    RegisteredCard registeredCard;
-    CleanUserCard cleanUserCard;
-    ManageCard manageCard;
+    RegisteredCardHN registeredCard;
+    CleanUserCardHN cleanUserCard;
+    ManageCardHN manageCard;
     DomainCard domainCard;
 
-    CleanCard cleanCard;
+    CleanCardHN cleanCard;
     ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad;
-    TestCard testCard;
+    TestCardHN testCard;
 
-    ConfigurationPowerCard configurationPowerCard;
+    ConfigurationPowerCardHN configurationPowerCard;
     //鎵撳嵃
 
     public static NFCWreatActivity nfcWreatActivity;
@@ -112,6 +113,30 @@
     boolean rechargeIsOk = false;
     ActivityWriteTextHnBinding binding;
     ConfirmDialog confirmDialog;
+
+    @Override
+    public void onNfcBack(Intent intent) {
+        try {
+            this.intent = intent;
+            startAnim();
+            Log.i("NFCWreatActivity", "isUser:" + isUser);
+            if (isUser) {
+                checkHasUser();
+            } else if (isRecharge) {
+                if (rechargeIsOk) {
+                    rechargeWrratCard();
+                } else {
+                    Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
+                }
+
+            } else {
+                saveData();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -182,18 +207,18 @@
     private void getData() {
         try {
             if (this.getIntent().hasExtra("userCard")) {
-                userCard = (UserCard) this.getIntent().getSerializableExtra("userCard");
+                userCard = (UserCardHN) this.getIntent().getSerializableExtra("userCard");
             }
             if (this.getIntent().hasExtra("cleanCard")) {
-                cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard");
+                cleanCard = (CleanCardHN) this.getIntent().getSerializableExtra("cleanCard");
                 binding.cardData.setText("鍒朵綔娓呴浂鍗�");
             }
             if (this.getIntent().hasExtra("manageCard")) {
-                manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard");
+                manageCard = (ManageCardHN) this.getIntent().getSerializableExtra("manageCard");
                 binding.cardData.setText("鍒朵綔绠$悊鍗�");
             }
             if (this.getIntent().hasExtra("registeredCard")) {
-                registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard");
+                registeredCard = (RegisteredCardHN) this.getIntent().getSerializableExtra("registeredCard");
                 binding.cardData.setText("鍒朵綔閲嶆柊娉ㄥ唽璁惧鍗�");
             }
             if (this.getIntent().hasExtra("dbUserCard")) {
@@ -201,7 +226,7 @@
                 isUser = true;
             }
             if (this.getIntent().hasExtra("cleanUserCard")) {
-                cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
+                cleanUserCard = (CleanUserCardHN) this.getIntent().getSerializableExtra("cleanUserCard");
                 binding.cardData.setText("鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�");
             }
             if (this.getIntent().hasExtra("domainCard_xinxiang")) {
@@ -213,7 +238,7 @@
                 binding.cardData.setText("鍒朵綔璁剧疆楣块倯鍩熷悕鍗�");
             }
             if (this.getIntent().hasExtra("testCard")) {
-                testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
+                testCard = (TestCardHN) this.getIntent().getSerializableExtra("testCard");
                 binding.cardData.setText("鍒朵綔娴嬭瘯鍗�");
             }
             if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) {
@@ -221,7 +246,7 @@
                 binding.cardData.setText("鍒朵綔閰嶇疆璁惧娉ㄥ唽淇℃伅鍗�");
             }
             if (this.getIntent().hasExtra("configurationPowerCard")) {
-                configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard");
+                configurationPowerCard = (ConfigurationPowerCardHN) this.getIntent().getSerializableExtra("configurationPowerCard");
                 binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�");
             }
             if (this.getIntent().hasExtra("morny")) {
@@ -339,30 +364,7 @@
         }
     }
 
-    @Override
-    public void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        try {
-            this.intent = intent;
-            startAnim();
-            Log.i("NFCWreatActivity", "isUser:" + isUser);
-            if (isUser) {
-                checkHasUser();
-            } else if (isRecharge) {
-                if (rechargeIsOk) {
-                    rechargeWrratCard();
-                } else {
-                    Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
-                }
 
-            } else {
-                saveData();
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            CrashReport.postCatchedException(e);
-        }
-    }
 
 
     /**
@@ -502,7 +504,7 @@
 
     //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
     private void rechargeWrratCard() {
-        UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
+        UserCardHN userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
         if (userCardold != null) {
             //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
             if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) {
@@ -523,7 +525,7 @@
         stopAnim();
     }
 
-    private void setmanageCard(Intent intent, final ManageCard manageCard) {
+    private void setmanageCard(Intent intent, final ManageCardHN manageCard) {
         try {
             manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0);
         } catch (Exception e) {
@@ -537,7 +539,7 @@
      * @param intent
      * @param clearOrInitCard
      */
-    private void setClean(Intent intent, final CleanCard clearOrInitCard) {
+    private void setClean(Intent intent, final CleanCardHN clearOrInitCard) {
         try {
             cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
@@ -552,7 +554,7 @@
      * @param intent
      * @param registeredCard
      */
-    private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
+    private void setRegisteredCard(Intent intent, RegisteredCardHN registeredCard) {
         try {
             registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
@@ -566,7 +568,7 @@
      * @param intent
      * @param cleanUserCard
      */
-    private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
+    private void setCleanUserCard(Intent intent, CleanUserCardHN cleanUserCard) {
         try {
             cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
@@ -597,7 +599,7 @@
         }
     }
 
-    private void setTestCard(Intent intent, TestCard testCard) {
+    private void setTestCard(Intent intent, TestCardHN testCard) {
         testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0);
     }
 
@@ -606,7 +608,7 @@
         configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0);
     }
 
-    private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
+    private void setConfigurationPower(Intent intent, ConfigurationPowerCardHN configurationPowerCard) {
         try {
             configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0);
         } catch (Exception e) {
@@ -653,7 +655,7 @@
                             stateText = new StringBuffer();
                             String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                             if (userCard == null) {
-                                userCard = new UserCard();
+                                userCard = new UserCardHN();
                                 userCard.setRechargeTimes(0);
                                 ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
                                 if (electricPriceBean != null) {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NewCardActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NewCardActivity.java
index 64538bd..c784129 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NewCardActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NewCardActivity.java
@@ -11,6 +11,8 @@
 
 import androidx.annotation.NonNull;
 
+import com.dayu.baselibrary.activity.BaseActivity;
+import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.baselibrary.tools.Utils;
@@ -18,7 +20,7 @@
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.utils.ToastUtil;
 import com.dayu.henanlibrary.HeNanApplication;
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.henanlibrary.card.UserCardHN;
 import com.dayu.henanlibrary.databinding.ActivityNewCardHnBinding;
 import com.dayu.henanlibrary.dbBean.AdminDataBean;
 import com.dayu.henanlibrary.dbBean.ElectricPriceBean;
@@ -52,7 +54,7 @@
  * Date: 2023-11-10 19:52
  * Description: 鏂板崱娉ㄥ唽
  */
-public class NewCardActivity extends BaseNfcActivity {
+public class NewCardActivity extends HNBaseActivity {
 
     public static final int SCAN_IDCARD_REQUEST = 1;
     UserCardBean userCardBean;
@@ -302,7 +304,7 @@
 
                         String initPeasantCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 10, 26));
                         String serial = baseDao.adminDao().findFirst().getSerial();
-                        UserCard userCard = new UserCard();
+                        UserCardHN userCard = new UserCardHN();
                         userCard.setRechargeTimes(0);
 
                         ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/ReadCardAcitivy.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/ReadCardAcitivy.java
index d2417f5..d8cbfe3 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/ReadCardAcitivy.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/ReadCardAcitivy.java
@@ -7,14 +7,17 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
+import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper;
+import com.dayu.baselibrary.tools.nfc.CardCommonState;
 import com.dayu.baselibrary.utils.CRC8;
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.henanlibrary.card.ConfigurationPowerCard;
+import com.dayu.henanlibrary.card.ConfigurationPowerCardHN;
 import com.dayu.henanlibrary.card.DomainCard;
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.henanlibrary.card.UserCardHN;
 import com.dayu.henanlibrary.databinding.ActivityRedCardHnBinding;
 import com.dayu.henanlibrary.net.SocketCallBack;
 import com.dayu.henanlibrary.net.SocketData;
@@ -37,9 +40,9 @@
  * Date: 2023-11-10 19:52
  * Description: 璇诲崱鐣岄潰
  */
-public class ReadCardAcitivy extends BaseNfcActivity {
+public class ReadCardAcitivy extends HNBaseNfcActivity {
 
-    volatile UserCard userCard;
+    volatile UserCardHN userCard;
     ActivityRedCardHnBinding redCardBinding;
 
     Intent intent;
@@ -78,14 +81,13 @@
     }
 
 
+
     @Override
-    public void onNewIntent(Intent intent) {
-        this.intent = intent;
+    public void onNfcBack(Intent intent) {
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             readAllData(intent);
         }
-        super.onNewIntent(intent);
     }
 
     /**
@@ -94,7 +96,7 @@
 
     public void readAllData(Intent intent) {
         NfcReadHelper.getInstence(intent, this)
-                .getOneSectorData(new NfcReadHelper.NFCCallListback() {
+                .getOneSectorData(new BaseNfcReadHelper.NFCCallListback() {
                     @Override
                     public void callBack(List<byte[]> data) {
                         //鑾峰彇1鎵囧尯鏁版嵁
@@ -105,7 +107,7 @@
                                 case CardCommon.USER_CARD_TYPE_1:
                                 case CardCommon.USER_CARD_TYPE_2:
                                 case CardCommon.USER_CARD_TYPE_3:
-                                    userCard = UserCard.getBean(data);
+                                    userCard = new UserCardHN().getBean(data);
                                     selectBalance(userCard.getInitPeasantCode());
                                     break;
                                 case CardCommon.MANAGE_CRAD:
@@ -132,9 +134,9 @@
                                 case CardCommon.DOMAIN_CARD_TYPE:
                                     viweGone(false);
                                     DomainCard domainXinXiangCard = DomainCard.toBean(data);
-                                    if(domainXinXiangCard.getType()==0){
+                                    if (domainXinXiangCard.getType() == 0) {
                                         redCardBinding.readCardTypeTV.setText("褰撳墠涓烘柊涔″煙鍚嶅崱");
-                                    }else {
+                                    } else {
                                         redCardBinding.readCardTypeTV.setText("褰撳墠涓洪箍閭戝煙鍚嶅崱");
                                     }
                                     StringBuilder builder = new StringBuilder();
@@ -160,7 +162,7 @@
                                 case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
                                     viweGone(false);
                                     redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
-                                    ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
+                                    ConfigurationPowerCardHN powerCard = ConfigurationPowerCardHN.toBean(data.get(0));
                                     redCardBinding.readCardDataTV.setText(powerCard.getPower());
                                     stopAnim();
                                     break;
@@ -180,7 +182,7 @@
                     @Override
                     public void error(int code) {
                         switch (code) {
-                            case CardCommon.ERROR_MOVE:
+                            case CardCommonState.ERROR_MOVE:
                                 stopAnim();
                                 TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
                                 break;
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeActivity.java
index c352147..d68b79a 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeActivity.java
@@ -9,10 +9,14 @@
 import android.view.View;
 import android.widget.EditText;
 
+import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.utils.CRC8;
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.henanlibrary.card.UserCardHN;
+import com.dayu.henanlibrary.dao.AppDatabase;
+import com.dayu.henanlibrary.dao.HNBaseDaoSingleton;
 import com.dayu.henanlibrary.databinding.ActivityRechargeHnBinding;
 import com.dayu.henanlibrary.dbBean.AdminDataBean;
 import com.dayu.henanlibrary.net.SocketCallBack;
@@ -36,7 +40,7 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�肩晫闈�
  */
-public class RechargeActivity extends BaseNfcActivity {
+public class RechargeActivity extends HNBaseNfcActivity {
 
     Intent intent;
 
@@ -46,6 +50,7 @@
 
     AdminDataBean adminData;
     String userName;
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -62,8 +67,8 @@
         }
     }
 
-    public void onNewIntent(Intent intent) {
-
+    @Override
+    public void onNfcBack(Intent intent) {
         try {
             this.intent = intent;
             userCard = NfcReadHelper.getInstence(intent, this).getUserCardData();
@@ -86,7 +91,6 @@
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
-        super.onNewIntent(intent);
     }
 
     private void initView() {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeDetail.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeDetail.java
index e4c5e0a..d7bcc9f 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeDetail.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/RechargeDetail.java
@@ -6,7 +6,7 @@
 import android.view.View;
 
 import com.dayu.baselibrary.utils.MornyUtil;
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.henanlibrary.card.UserCardHN;
 import com.dayu.henanlibrary.databinding.ActivityRechargeDetailHnBinding;
 
 import java.util.Calendar;
@@ -21,7 +21,7 @@
 public class RechargeDetail extends HNBaseActivity {
 
     ActivityRechargeDetailHnBinding binding;
-    UserCard userCard;
+    UserCardHN userCard;
     String statu;
     String userName;
     String morny;
@@ -34,7 +34,7 @@
         setContentView(binding.getRoot());
 
         try {
-            userCard = (UserCard) getIntent().getSerializableExtra("userCard");
+            userCard = (UserCardHN) getIntent().getSerializableExtra("userCard");
             statu = getIntent().getStringExtra("statu");
             userName = getIntent().getStringExtra("userName");
             if (getIntent().hasExtra("morny")) {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/SysActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/SysActivity.java
index 91198cd..043d0ca 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/SysActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/SysActivity.java
@@ -5,13 +5,13 @@
 import android.view.LayoutInflater;
 
 import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.henanlibrary.card.CleanCard;
-import com.dayu.henanlibrary.card.CleanUserCard;
-import com.dayu.henanlibrary.card.ConfigurationPowerCard;
+import com.dayu.henanlibrary.card.CleanCardHN;
+import com.dayu.henanlibrary.card.CleanUserCardHN;
+import com.dayu.henanlibrary.card.ConfigurationPowerCardHN;
 import com.dayu.henanlibrary.card.ConfigureDeviceRegistrationCrad;
-import com.dayu.henanlibrary.card.ManageCard;
-import com.dayu.henanlibrary.card.RegisteredCard;
-import com.dayu.henanlibrary.card.TestCard;
+import com.dayu.henanlibrary.card.ManageCardHN;
+import com.dayu.henanlibrary.card.RegisteredCardHN;
+import com.dayu.henanlibrary.card.TestCardHN;
 import com.dayu.henanlibrary.databinding.ActivityAdminHnBinding;
 import com.dayu.henanlibrary.dbBean.PowerBean;
 import com.dayu.henanlibrary.view.DomaindDialog;
@@ -41,7 +41,7 @@
         //鍒朵綔绠$悊鍗�
         adminBinding.adminAdmin.setOnClickListener(v -> {
             Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-            ManageCard manageCard = new ManageCard();
+            ManageCardHN manageCard = new ManageCardHN();
 
             intent.putExtra("manageCard", manageCard);
             startActivity(intent);
@@ -49,20 +49,20 @@
         //鍒朵綔娓呴浂鍗�
         adminBinding.adminCleanZero.setOnClickListener(v -> {
             Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-            CleanCard cleanCard = new CleanCard();
+            CleanCardHN cleanCard = new CleanCardHN();
             intent.putExtra("cleanCard", cleanCard);
             startActivity(intent);
         });
         adminBinding.adminRegistered.setOnClickListener(v -> {
             Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-            RegisteredCard registeredCard = new RegisteredCard();
+            RegisteredCardHN registeredCard = new RegisteredCardHN();
             intent.putExtra("registeredCard", registeredCard);
             startActivity(intent);
         });
         //鍒犻櫎鍏ㄩ儴鐢ㄦ埛
         adminBinding.adminCleanUser.setOnClickListener(v -> {
             Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-            CleanUserCard cleanUserCard = new CleanUserCard();
+            CleanUserCardHN cleanUserCard = new CleanUserCardHN();
             intent.putExtra("cleanUserCard", cleanUserCard);
             startActivity(intent);
         });
@@ -73,7 +73,7 @@
         });
         adminBinding.adminTest.setOnClickListener(v -> {
             Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-            TestCard testCard = new TestCard();
+            TestCardHN testCard = new TestCardHN();
             intent.putExtra("testCard", testCard);
             startActivity(intent);
         });
@@ -89,7 +89,7 @@
             PowerBean powerBean = baseDao.powerDao().findFirst();
             if (powerBean != null) {
                 Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
-                ConfigurationPowerCard configurationPowerCard = new ConfigurationPowerCard();
+                ConfigurationPowerCardHN configurationPowerCard = new ConfigurationPowerCardHN();
                 configurationPowerCard.setPower(powerBean.getPower());
                 intent.putExtra("configurationPowerCard", configurationPowerCard);
                 startActivity(intent);
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/BaseCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/BaseCard.java
deleted file mode 100644
index 005af9c..0000000
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/BaseCard.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.dayu.henanlibrary.card;
-
-import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.henanlibrary.dao.AppDatabase;
-import com.dayu.henanlibrary.dbBean.CardData;
-import com.dayu.henanlibrary.utils.CardCommon;
-import com.tencent.bugly.crashreport.CrashReport;
-
-import java.io.Serializable;
-
-/**
- * Copyright (C), 2023,
- * Author: zuo
- * Date: 2023-11-07 20:52
- * Description:鎵�鏈夊崱缁撴瀯鐨勭埗绫�
- */
-public class BaseCard implements Serializable {
-    public String cardData;//鏍囪瘑鐮�
-
-    public void setCardData(AppDatabase baseDao, String cardType) {
-        try {
-            CardData cardDataBean = baseDao.cardDataDao().findFirst(cardType);
-            if (cardDataBean != null) {
-                cardData = cardDataBean.getCardIdentifying();
-            } else {
-                cardData= CardCommon.getDefaultCardData(cardType);
-            }
-        } catch (Exception e) {
-            CrashReport.postCatchedException(e);
-        }
-    }
-
-
-    /**
-     * 鍓�15涓瓧鑺傜畻鏈疮鍔犲拰 涓嶅惈杩涗綅
-     *
-     * @param data 婧愭暟鎹�
-     * @return 16杩涘埗
-     */
-    public byte getByteSum(byte[] data) {
-        if (data != null) {
-            int sum = 0;
-            for (byte b : data) {
-                sum += b & 0xFF; // & 0xFF 鍙互灏嗗瓧鑺傛墿灞曚负姝f暣鏁帮紝閬垮厤绗﹀彿浣嶇殑褰卞搷
-            }
-            String hex = HexUtil.get10to16CompleteHex(sum);
-            hex = HexUtil.spaceHex(hex);
-            String[] hexArr = hex.split(" ");
-            return HexUtil.hexToByte(hexArr[hexArr.length - 1]);
-        }
-        return 0;
-    }
-
-
-}
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCardHN.java
similarity index 92%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCardHN.java
index e871a9c..78a0508 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanCardHN.java
@@ -12,7 +12,7 @@
  * Date: 2023-11-08 10:57
  * Description:娓呴浂鍗�
  */
-public class CleanCard extends BaseCard implements Serializable {
+public class CleanCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.CLEAN_CARD_TYPE;//鍗$被鍨�
 
     public String getCardData() {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCardHN.java
similarity index 92%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCardHN.java
index 9eb2109..4713cc9 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/CleanUserCardHN.java
@@ -12,7 +12,7 @@
  * Date: 2023-11-08 11:39
  * Description:鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�
  */
-public class CleanUserCard extends BaseCard implements Serializable {
+public class CleanUserCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.CLEAN_ALL_USER_CARD_TYPE;//鍗$被鍨�
 
     public byte[] toByte(AppDatabase appDatabase) {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCardHN.java
similarity index 90%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCardHN.java
index fdb555f..3417fe3 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigurationPowerCardHN.java
@@ -16,7 +16,7 @@
  * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝
  * 鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤
  */
-public class ConfigurationPowerCard extends BaseCard implements Serializable {
+public class ConfigurationPowerCardHN extends HNBaseCard implements Serializable {
 
 
     public String cardType = CardCommon.CONFIGURATION_POWER_CARD_TYPE;//鍗$被鍨�
@@ -36,9 +36,9 @@
     }
 
 
-    public static ConfigurationPowerCard toBean(byte[] data) {
+    public static ConfigurationPowerCardHN toBean(byte[] data) {
         try {
-            ConfigurationPowerCard powerCard = new ConfigurationPowerCard();
+            ConfigurationPowerCardHN powerCard = new ConfigurationPowerCardHN();
             int intPower = HexUtil.get16to10(HexUtil.byteToHex(data[5]));
             powerCard.setPower(String.valueOf(intPower));
             return powerCard;
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigureDeviceRegistrationCrad.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigureDeviceRegistrationCrad.java
index 8355a46..339a4d7 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigureDeviceRegistrationCrad.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ConfigureDeviceRegistrationCrad.java
@@ -15,7 +15,7 @@
  * <p>
  * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤
  */
-public class ConfigureDeviceRegistrationCrad extends BaseCard implements Serializable {
+public class ConfigureDeviceRegistrationCrad extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.CONFIGURATION_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
index 4c3e93d..ec248e1 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java
@@ -168,7 +168,7 @@
     /**
      * 鐢ㄦ埛鍗�0鍧�
      */
-    public class Zero extends BaseCard {
+    public class Zero extends HNBaseCard {
         public byte[] toByte() {
             byte[] data = new byte[16];
             data[0] = HexUtil.hexToByte(cardType);
@@ -210,7 +210,7 @@
     /**
      * 鐢ㄦ埛鍗�1鍧�
      */
-    public class One extends BaseCard {
+    public class One extends HNBaseCard {
 
         public byte[] toBytes() {
             byte[] data = new byte[16];
@@ -230,7 +230,7 @@
     /**
      * 鐢ㄦ埛鍗�2鍧�
      */
-    public class Two extends BaseCard {
+    public class Two extends HNBaseCard {
         public byte[] toBytes() {
             byte[] data = new byte[16];
             int offset = (type == 0) ? 27 : 28; // 12 + 15 and 13 + 15
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/HNBaseCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/HNBaseCard.java
new file mode 100644
index 0000000..684a105
--- /dev/null
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/HNBaseCard.java
@@ -0,0 +1,34 @@
+package com.dayu.henanlibrary.card;
+
+import com.dayu.baselibrary.tools.BaseCard;
+import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.henanlibrary.dao.AppDatabase;
+import com.dayu.henanlibrary.dbBean.CardData;
+import com.dayu.henanlibrary.utils.CardCommon;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.io.Serializable;
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-07 20:52
+ * Description:娌冲崡鐗堟湰鎵�鏈夊崱缁撴瀯鐨勭埗绫�
+ */
+public class HNBaseCard extends BaseCard implements Serializable {
+    public String cardData;//鏍囪瘑鐮�
+
+    public void setCardData(AppDatabase baseDao, String cardType) {
+        try {
+            CardData cardDataBean = baseDao.cardDataDao().findFirst(cardType);
+            if (cardDataBean != null) {
+                cardData = cardDataBean.getCardIdentifying();
+            } else {
+                cardData= CardCommon.getDefaultCardData(cardType);
+            }
+        } catch (Exception e) {
+            CrashReport.postCatchedException(e);
+        }
+    }
+
+}
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCardHN.java
similarity index 93%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCardHN.java
index 9c570fa..72da7ad 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/ManageCardHN.java
@@ -12,7 +12,7 @@
  * Date: 2023-11-08 10:19
  * Description: 绠$悊鍗�  绗�1鎵囧尯 0鍧�
  */
-public class ManageCard extends BaseCard implements Serializable {
+public class ManageCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.MANAGE_CRAD;//鍗$被鍨�
 //    public String cardData = "3668F7A30119";//鏍囪瘑鐮�
 
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCardHN.java
similarity index 86%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCardHN.java
index 921e870..d34299f 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/PassWordCardHN.java
@@ -12,12 +12,12 @@
  * Date: 2023-11-08 11:22
  * Description:瀵嗙爜鍗�
  */
-public class PassWordCard extends BaseCard implements Serializable {
+public class PassWordCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.PASS_WORD_CRAD_TYPE;//鍗$被鍨�
 
     public byte[] toByte(AppDatabase appDatabase) {
         setCardData(appDatabase, cardType);
-        PassWordCard.Zero zero = new PassWordCard.Zero();
+        PassWordCardHN.Zero zero = new PassWordCardHN.Zero();
         return zero.toByte();
     }
 
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCardHN.java
similarity index 92%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCardHN.java
index 03c7bf3..3523d32 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/RegisteredCardHN.java
@@ -12,7 +12,7 @@
  * Date: 2023-11-08 11:36
  * Description:閲嶆柊娉ㄥ唽璁惧鍗★細鐢ㄤ簬鍐欑敤鎴锋敞鍐屽彿
  */
-public class RegisteredCard extends BaseCard implements Serializable {
+public class RegisteredCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.REGISTERED_CARD_TYPE;//鍗$被鍨�
 
     public String getCardData() {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCardHN.java
similarity index 93%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCardHN.java
index 902471b..6cacd98 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/TestCardHN.java
@@ -12,7 +12,7 @@
  * Date: 2023-11-08 13:23
  * Description: 娴嬭瘯鍗�
  */
-public class TestCard extends BaseCard implements Serializable {
+public class TestCardHN extends HNBaseCard implements Serializable {
     public String cardType = CardCommon.TEST_CARD_TYPE;//鍗$被鍨�
 
     public String getCardData() {
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCardHN.java
similarity index 97%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCard.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCardHN.java
index 9faa0db..b155849 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCard.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/UserCardHN.java
@@ -1,5 +1,6 @@
 package com.dayu.henanlibrary.card;
 
+import com.dayu.baselibrary.bean.BaseUserCardCard;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.henanlibrary.utils.CardCommon;
@@ -14,7 +15,7 @@
  * Date: 2023-11-07 9:37
  * Description: 鐢ㄦ埛鍗$粨鏋�
  */
-public class UserCard extends BaseCard implements Serializable {
+public class UserCardHN extends BaseUserCardCard implements Serializable {
     public String cardType = CardCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
 
     public int rechargeTimes;//鍏呭�兼鏁�
@@ -54,7 +55,8 @@
      *
      * @param data 璇诲崱鐨勬暟鎹�
      */
-    public static UserCard getBean(List<byte[]> data) {
+    @Override
+    public  UserCardHN getBean(List<byte[]> data) {
         try {
 
             if (data != null) {
@@ -62,7 +64,7 @@
                 byte[] one = data.get(1);
                 byte[] two = data.get(2);
                 if (zero != null && zero.length == 16) {
-                    UserCard userCard = new UserCard();
+                    UserCardHN userCard = new UserCardHN();
                     userCard.cardType = HexUtil.byteToHex(zero[0]);
                     userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
                     byte[] swipeNumberBytes = new byte[2];
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/BaseNFCHelper.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/HNBaseHelper.java
similarity index 83%
rename from henanlibrary/src/main/java/com/dayu/henanlibrary/tools/BaseNFCHelper.java
rename to henanlibrary/src/main/java/com/dayu/henanlibrary/tools/HNBaseHelper.java
index 758c73f..4a74c31 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/BaseNFCHelper.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/HNBaseHelper.java
@@ -4,6 +4,7 @@
 import android.util.Base64;
 
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.BaseNFCHelper;
 
 import java.nio.charset.StandardCharsets;
 import java.security.InvalidKeyException;
@@ -16,25 +17,12 @@
 import javax.crypto.spec.SecretKeySpec;
 
 /**
- * Copyright (C), 2023,
- * Author: zuo
- * Date: 2023-11-09 11:52
- * Description:
+ * author: zuo
+ * Date: 2024-09-26
+ * Time: 9:30
+ * 澶囨敞锛�
  */
-public class BaseNFCHelper {
-    /**
-     * 榛樿瀵嗙爜锛堢櫧鍗″瘑鐮侊級ffffffffffff
-     */
-    public byte[] defauleKey;
-
-    /**
-     * 鍏徃瀵嗙爜
-     */
-    public byte[] companyKey;
-    //瀵嗙爜a鍖�
-    String companyKeyA;
-    //瀵嗙爜B鍖�
-    String companyKeyB;
+public class HNBaseHelper extends BaseNFCHelper {
 
 
     static {
@@ -42,8 +30,12 @@
     }
 
     public native String getSafeKey(Object object);
-
-    public BaseNFCHelper(Activity activity) {
+    /**
+     * 鍒涘缓璇ユā鍧楃殑key
+     *
+     * @param activity
+     */
+    public HNBaseHelper(Activity activity) {
         // 瑙e瘑瀛楃涓�
         try {
             //鍒濆瀵嗙爜
@@ -56,13 +48,15 @@
             byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
             String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
             defauleKey = HexUtil.hexToByteArray(decryptedText);
+            listKeyA.add(defauleKey);
             //鍒濆瀵嗙爜
 //             byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
             byte[] encryptedBytes2 = Base64.decode("qeg4DUWf0ni9JfRWtD2krA==", Base64.DEFAULT);
             byte[] decryptedBytes2 = cipher.doFinal(encryptedBytes2);
             //decryptedBytes2 瀵瑰簲010203040506
-            companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
+            String companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
             companyKey = HexUtil.hexToByteArray(companyKeyA);
+            listKeyA.add(companyKey);
 
             //淇敼鍚庣殑瀵嗙爜
             byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
@@ -70,10 +64,10 @@
             //decryptedBytes3 瀵瑰簲202311202048
             companyKeyB = new String(decryptedBytes2, StandardCharsets.UTF_8);
 
-
         } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException |
                  BadPaddingException | IllegalBlockSizeException e) {
             e.printStackTrace();
         }
     }
+
 }
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NFCWriteHelper.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NFCWriteHelper.java
index 711cdc0..2b71814 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NFCWriteHelper.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NFCWriteHelper.java
@@ -8,7 +8,9 @@
 import android.util.Log;
 
 import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.baselibrary.tools.nfc.BaseNfcWriteHelper;
+import com.dayu.baselibrary.tools.nfc.NfcWriteAdapter;
+import com.dayu.henanlibrary.card.UserCardHN;
 
 import java.io.IOException;
 
@@ -18,16 +20,15 @@
  * email 1058083107@qq.com
  * description
  */
-public class NFCWriteHelper extends BaseNFCHelper {
+public class NFCWriteHelper extends HNBaseHelper {
 
-    private Tag tag;
 
     private static NFCWriteHelper helper;
-    private static int PASSWORD_LENTH = 12;
+    private NfcWriteAdapter adapter;
 
     public NFCWriteHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+        adapter = new NfcWriteAdapter(intent,activity);
     }
 
     /**
@@ -43,21 +44,6 @@
         return helper;
     }
 
-    /**
-     * 璁剧疆NFC鍗$殑璇诲彇瀵嗙爜
-     *
-     * @param str
-     * @return
-     */
-    public NFCWriteHelper setReadPassword(String str) {
-        if (null != str && (str.length() <= PASSWORD_LENTH)) {
-            for (int i = 0; i < str.length(); i++) {
-                defauleKey[i] = (byte) str.charAt(i);
-            }
-        }
-        return helper;
-    }
-
 
     /**
      * 鍐欏崱
@@ -65,55 +51,11 @@
      * @param userCard 鐢ㄦ埛鍗″唴瀹�
      * @param
      */
-    public boolean writeUserData(UserCard userCard) {
-        if (userCard != null) {
-            int a = 1;
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            for (int b = 0; b < 3; b++) {
-                                byte[] data;
-                                if (b == 0) {
-                                    data = userCard.getZeroBytes();
-                                } else if (b == 1) {
-                                    data = userCard.getOneBytes();
-                                } else {
-                                    data = userCard.getTwoBytes();
-                                }
-                                int bIndex = mfc.sectorToBlock(a);
-                                //鍐欏崱
-                                mfc.writeBlock(bIndex + b, data);
-                            }
-                            return true;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+    public boolean writeUserData(UserCardHN userCard) {
+        try {
+            return adapter.writeUserData(userCard);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -128,56 +70,10 @@
      * @param
      */
     public boolean writeData(byte[] str, int a, int b) {
-        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
-        if (str.length <= 16) {
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //鑾峰彇鎵囧尯鏁伴噺
-                        int count = mfc.getSectorCount();
-                        //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
-                        if (a > count - 1 || a < 0) {
-                            return false;
-                        }
-                        //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
-                        int bCount = mfc.getBlockCountInSector(a);
-                        //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
-                        if (b > bCount - 1 || b < 0) {
-                            return false;
-                        }
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            //鍐欏崱
-                            mfc.writeBlock(bIndex + b, str);
-                            return true;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+        try {
+            return adapter.writeData(str, a, b);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -190,65 +86,12 @@
      *          //     * @param callback 杩斿洖鐩戝惉
      */
     public boolean changePasword(int a, MifareClassic mfc) {
-//        MifareClassic mfc = MifareClassic.get(tag);
-        byte[] data = new byte[16];
-        if (null != mfc) {
-            try {
-//                mfc.connect();
-//                int count = mfc.getSectorCount();
-//                boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-//                //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
-//                if (isOpen) {
-                //灏嗗瘑鐮佽浆鎹负keyA
-                byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
-                for (int i = 0; i < dataA.length; i++) {
-                    data[i] = dataA[i];
-                }
-                //杈撳叆鎺у埗浣�
-                data[6] = (byte) 0xFF;
-                data[7] = (byte) 0x07;
-                data[8] = (byte) 0x80;
-                data[9] = (byte) 0x69;
-                byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
-                //灏嗗瘑鐮佽浆鎹负KeyB
-                for (int i = 0; i < dataB.length; i++) {
-                    data[i + 10] = dataB[i];
-                }
-                int bIndex = mfc.sectorToBlock(a);
-                int bCount = mfc.getBlockCountInSector(a);
-                //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
-                mfc.writeBlock(bIndex + bCount - 1, data);
-//                    byte[] dataa = mfc.readBlock(bIndex + bCount - 1);
-//                    // 淇敼瀵嗙爜 A
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA);
-//                    // 淇敼瀵嗙爜 B
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB);
-//                }
-                return true;
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-//                callback.isSusses(false);
-            } finally {
-//                try {
-//                    mfc.close();
-//                } catch (IOException e) {
-//                    e.printStackTrace();
-//                }
-            }
+        try {
+            adapter.changePasword(a,mfc);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
 
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallback {
-        /**
-         * 杩斿洖鏄惁鎴愬姛
-         *
-         * @param flag
-         */
-        void isSusses(boolean flag);
-    }
-}
+}
\ No newline at end of file
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java
index cd8c1bd..5d89c30 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/NfcReadHelper.java
@@ -2,21 +2,13 @@
 
 import android.app.Activity;
 import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.nfc.Tag;
-import android.nfc.tech.MifareClassic;
-import android.util.Log;
 
-import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.BaseCommon;
-import com.dayu.henanlibrary.card.UserCard;
-import com.dayu.henanlibrary.utils.CardCommon;
+import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper;
+import com.dayu.baselibrary.tools.nfc.NfcReadAdapter;
+import com.dayu.henanlibrary.card.UserCardHN;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author zx
@@ -24,18 +16,18 @@
  * email 1058083107@qq.com
  * description nfc璇诲彇宸ュ叿绫�
  */
-public class NfcReadHelper extends BaseNFCHelper {
+public class NfcReadHelper extends HNBaseHelper {
 
-    private Tag tag;
     //    private NFCCallback callback;
     private static NfcReadHelper helper;
+    private NfcReadAdapter adapter;
 
 
     public NfcReadHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
-
+        adapter=new NfcReadAdapter(intent,activity);
     }
+
 
     /**
      * 鍗曚緥鍒濆鍖�
@@ -55,97 +47,20 @@
      *
      * @return
      */
-    public UserCard getUserCardData() {
-        UserCard userCard = null;
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-
-                if (flag) {
-                    userCard = UserCard.getBean(list);
-                    return userCard;
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+    public UserCardHN getUserCardData() {
+        try {
+            return (UserCardHN) adapter.getUserCardData(new UserCardHN());
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return null;
     }
 
     public String getCradType() {
-
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                mfc.connect();
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(1);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.byteToHex(data[0]);
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                        return hex;
-                    }
-
-                } else {
-                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
-                    return BaseCommon.CARD_TYPE_ERROR2;
-                }
-            } catch (IOException e) {
-                return BaseCommon.CARD_TYPE_ERROR1;
-            } finally {
-                try {
-                    mfc.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return adapter.getCradType();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return "";
     }
@@ -155,65 +70,11 @@
      *
      * @param callback
      */
-    public void getAllData(final NFCCallMapback callback) {
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                for (int i = 0; i < count; i++) {
-                    List<byte[]> list = new ArrayList<>();
-                    //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                    boolean isOpen = mfc.authenticateSectorWithKeyA(i, defauleKey);
-                    if (!isOpen) {
-                        isOpen = mfc.authenticateSectorWithKeyA(i, companyKey);
-                    }
-                    if (isOpen) {
-                        //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                        int bCount = mfc.getBlockCountInSector(i);
-                        //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                        int bIndex = mfc.sectorToBlock(i);
-                        //String data1 = "";
-                        for (int j = 0; j < bCount; j++) {
-                            //璇诲彇鏁版嵁
-                            byte[] data = null;
-                            try {
-                                data = mfc.readBlock(bIndex);
-                                bIndex++;
-                                list.add(data);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                        }
-                        flag = true;
-                    }
-                    map.put(i + "", list);
-                }
-                if (flag) {
-                    callback.callBack(map);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+    public void getAllData(final BaseNfcReadHelper.NFCCallMapback callback) {
+        try {
+            adapter.getAllData(callback);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 
@@ -223,67 +84,14 @@
      *
      * @param callback
      */
-    public void getOneSectorData(NFCCallListback callback) {
-
-
-        MifareClassic mfc = null;
+    public void getOneSectorData(BaseNfcReadHelper.NFCCallListback callback) {
         try {
-            mfc = MifareClassic.get(tag);
+            adapter.getOneSectorData(callback);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-                if (flag) {
-                    callback.callBack(list);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }
     }
+
 
 
     /**
@@ -293,111 +101,15 @@
      * @param b        鍧�
      * @param callback
      */
-    public void getData(final int a, final int b, final NFCCallByteback callback) {
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                Map<String, List<String>> map = new HashMap<>();
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        mfc.connect();
-                        int count = mfc.getSectorCount();
-                        if (a < 0 || a > count - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-                        int bCount = mfc.getBlockCountInSector(a);
-                        if (b < 0 || b > bCount - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-
-                        int type = mfc.getType();//鑾峰彇TAG鐨勭被鍨�
-                        String typeS = "";
-                        switch (type) {
-                            case MifareClassic.TYPE_CLASSIC:
-                                typeS = "TYPE_CLASSIC";
-                                break;
-                            case MifareClassic.TYPE_PLUS:
-                                typeS = "TYPE_PLUS";
-                                break;
-                            case MifareClassic.TYPE_PRO:
-                                typeS = "TYPE_PRO";
-                                break;
-                            case MifareClassic.TYPE_UNKNOWN:
-                                typeS = "TYPE_UNKNOWN";
-                                break;
-                        }
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            byte[] data = mfc.readBlock(bIndex + b);
-                            callback.callBack(data);
-                        } else {
-                            callback.error(CardCommon.ERROR);
-                        }
-                    } catch (IOException e) {
-                        callback.error(CardCommon.ERROR_MOVE);
-                        e.printStackTrace();
-                    } catch (Exception e) {
-                        callback.error(CardCommon.ERROR);
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            }
-        }).start();
-    }
-
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallMapback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(Map<String, List<byte[]>> data);
-
-
-        void error(int code);
-    }
-
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallListback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(List<byte[]> data);
-
-
-        void error(int code);
+    public void getData(final int a, final int b, final BaseNfcReadHelper.NFCCallByteback callback) {
+        try {
+            adapter.getData(a, b, callback);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 
-    public interface NFCCallByteback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
 
-        void callBack(byte[] data);
-
-        void error(int code);
-    }
 
 }
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/WriteCardUtils.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/WriteCardUtils.java
index fcd668e..0892320 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/WriteCardUtils.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/tools/WriteCardUtils.java
@@ -3,7 +3,7 @@
 import android.app.Activity;
 import android.content.Intent;
 
-import com.dayu.henanlibrary.card.UserCard;
+import com.dayu.henanlibrary.card.UserCardHN;
 
 /**
  * Created by Android Studio.
@@ -16,7 +16,7 @@
     static boolean userFlag = false;
 
     //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅
-    public static boolean setUser(Intent intent, UserCard userCard, Activity activity) {
+    public static boolean setUser(Intent intent, UserCardHN userCard, Activity activity) {
         userFlag = NFCWriteHelper.getInstence(intent,activity).writeUserData(userCard);
 
         return userFlag;
diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/utils/CardCommon.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/utils/CardCommon.java
index 28a4d09..743072e 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/utils/CardCommon.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/utils/CardCommon.java
@@ -8,9 +8,7 @@
  */
 public class CardCommon {
 
-    public static final int ERROR = -1;
-    //杩炴帴涓柇 鎻愮ず鐢ㄦ埛閲嶆柊杩炴帴鎴栨彁绀虹敤鎴烽噸鏂伴潬杩戝崱鐗�
-    public static final int ERROR_MOVE = -2;
+
 
     /**
      * 鐢ㄦ埛鍒峰崱寮�娉靛墠
diff --git a/qihealonelibrary/src/main/AndroidManifest.xml b/qihealonelibrary/src/main/AndroidManifest.xml
index f023acc..dcbd50e 100644
--- a/qihealonelibrary/src/main/AndroidManifest.xml
+++ b/qihealonelibrary/src/main/AndroidManifest.xml
@@ -9,18 +9,18 @@
 
 
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.AdminSetupActivity"
+            android:name="com.dayu.qihealonelibrary.activity.AdminSetupActivityQHAlone"
             android:exported="false">
 
         </activity>
 
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.HomeActivity"
+            android:name="com.dayu.qihealonelibrary.activity.HomeActivityQHAlone"
             android:exported="false">
 
         </activity>
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.NewCardActivity"
+            android:name="com.dayu.qihealonelibrary.activity.NewCardActivityQHAlone"
             android:exported="false"
             android:launchMode="singleTop"
             >
@@ -30,15 +30,15 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.SysActivity"
+            android:name="com.dayu.qihealonelibrary.activity.SysActivityQHAlone"
             android:exported="false">
 
         </activity>
 
-        <activity android:name="com.dayu.qihealonelibrary.activity.PassWordActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.MyActivity" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.PassWordActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.MyActivityQHAlone" />
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.RechargeActivity"
+            android:name="com.dayu.qihealonelibrary.activity.RechargeActivityQHAlone"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -58,7 +58,7 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.NFCWreatActivity"
+            android:name="com.dayu.qihealonelibrary.activity.NFCWreatActivityQHAlone"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -66,19 +66,19 @@
                 <data android:mimeType="text/plain" />
             </intent-filter>
         </activity>
-        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeListActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.NewCardListActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.ParameterActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.PowerActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.DomainActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.ElectricPriceActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.IdentifyingActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeDetailActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.PasswordCardActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.RegionActivity" />
-        <activity android:name="com.dayu.qihealonelibrary.activity.ManagerListActivity" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeListActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.NewCardListActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.ParameterActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.PowerActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.DomainActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.ElectricPriceActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.IdentifyingActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.RechargeDetailActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.PasswordCardActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.RegionActivityQHAlone" />
+        <activity android:name="com.dayu.qihealonelibrary.activity.ManagerListActivityQHAlone" />
         <activity
-            android:name="com.dayu.qihealonelibrary.activity.ManagerReadActivity"
+            android:name="com.dayu.qihealonelibrary.activity.ManagerReadActivityQHAlone"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
diff --git a/qihealonelibrary/src/main/cpp/qihealone-native-lib.cpp b/qihealonelibrary/src/main/cpp/qihealone-native-lib.cpp
index 352e938..8771f0c 100644
--- a/qihealonelibrary/src/main/cpp/qihealone-native-lib.cpp
+++ b/qihealonelibrary/src/main/cpp/qihealone-native-lib.cpp
@@ -41,7 +41,7 @@
 
 extern "C"
 JNIEXPORT jstring
-Java_com_dayu_qihealonelibrary_tools_BaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) {
+Java_com_dayu_qihealonelibrary_tools_QHBaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) {
     jmethodID getPackageManagerId = (env)->GetMethodID(contextClass, "getPackageManager","()Landroid/content/pm/PackageManager;");
     jmethodID getPackageNameId = (env)->GetMethodID(contextClass, "getPackageName","()Ljava/lang/String;");
     jmethodID signToStringId = (env)->GetMethodID(signatureClass, "toCharsString","()Ljava/lang/String;");
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java
similarity index 90%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java
index 0df2ad2..e21f337 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/AdminSetupActivityQHAlone.java
@@ -20,11 +20,11 @@
  * Date: 2023-11-10 19:52
  * Description: 绠$悊鍛樹俊鎭缃�
  */
-public class AdminSetupActivity extends BaseActivity {
+public class AdminSetupActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityAdminSetupQhaBinding adminBinding;
 
-    public static AdminSetupActivity adminSetupActivity;
+    public static AdminSetupActivityQHAlone adminSetupActivityQHAlone;
     AdminDataBean adminData = new AdminDataBean();
     ElectricPriceBean electricPriceBean;
 
@@ -34,7 +34,7 @@
         try {
             adminBinding = ActivityAdminSetupQhaBinding.inflate(LayoutInflater.from(this));
             setContentView(adminBinding.getRoot());
-            adminSetupActivity = this;
+            adminSetupActivityQHAlone = this;
             setViewData();
             initView();
         } catch (Exception e) {
@@ -59,21 +59,21 @@
                         baseDao.adminDao().insert(adminData);
                         electricPriceBean.setPrice(Float.parseFloat(strElectricPrice));
                         baseDao.electricPriceDao().insert(electricPriceBean);
-                        TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
+                        TipUtil.show(AdminSetupActivityQHAlone.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
                             @Override
                             public void onCancle() {
-                                AdminSetupActivity.this.finish();
+                                AdminSetupActivityQHAlone.this.finish();
                             }
                         });
                     } else {
-                        TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勫尯鍩熷彿涓嶈兘瓒呰繃65535");
+                        TipUtil.show(AdminSetupActivityQHAlone.this, "杈撳叆鐨勫尯鍩熷彿涓嶈兘瓒呰繃65535");
                     }
 
                 } else {
-                    TipUtil.show(AdminSetupActivity.this, "鍗曚环涓嶈兘涓�0");
+                    TipUtil.show(AdminSetupActivityQHAlone.this, "鍗曚环涓嶈兘涓�0");
                 }
             } else {
-                TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                TipUtil.show(AdminSetupActivityQHAlone.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
             }
         });
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java
deleted file mode 100644
index 1b42ce5..0000000
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseActivity.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.dayu.qihealonelibrary.activity;
-
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.Signature;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-
-import com.dayu.baselibrary.view.TitleBar;
-import com.dayu.qihealonelibrary.R;
-import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
-import com.dayu.qihealonelibrary.dao.BaseDaoSingleton;
-
-
-/**
- * Created by zuoxiao on 2018/12/20.
- */
-
-public class BaseActivity extends com.dayu.baselibrary.activity.BaseActivity {
-    private final String TAG = "BaseActivity";
-
-    public TitleBar titleBar = null;
-    //z涓荤嚎绋嬫煡璇�
-    public QHAloneAppDatabase baseDao;
-    //寮傛绾跨▼鏌ヨ
-    public QHAloneAppDatabase asynchBaseDao;
-    public final String SIGN = "308202b8308201a0020101300d06092a864886f70d01010b05003022310f300d06035504030c06e5a4a7e7a6b9310f300d06035504070c06e5a4a9e6b4a5301e170d3233313132303035333131325a170d3438313131333035333131325a3022310f300d06035504030c06e5a4a7e7a6b9310f300d06035504070c06e5a4a9e6b4a530820122300d06092a864886f70d01010105000382010f003082010a0282010100a0924f3d618e4a622def691e16e54ce5bdfd035bd73e7cb947d2bf3bd0c00afa26e52963e0299fc06d76d153be696c5285d630577e1dcb2b740a72b6d904482217de308fb91c8435441ed05e844ced1e5c3446d82cb8f38751049df26a42adcfc33f1f12c2ce03f676e5d148aad800ace89670b87835e2c02a8570a0b6740d9c0669d4cb3c597d0b2dd49fc0904e885773b6d3a87d9f1e73eb526e0d1a9e9e3c48d986938286cd824151b5a6214faf89d3e699524511b23c86d3b110a7f0bb56a6d2436f69816538a62a38cb1fee6eb685d267cc200df8af51b936bd280beaa2023f75678d77a11ac6de734b30af63d394c8b63bccf2115a47ea15c9212c740d0203010001300d06092a864886f70d01010b05000382010100307cafa9b14be91ba6424cfcc6aed75b069a1c4d6eb646eab0de93f372f236f5f0a6097499df99391075d6ced18d419a2b15adb041890e2b56a3bfbd6be40efee99c5c713ba8ea1d45da09b67916106116e96eb735271c4d53e0739f753145cbc42e149ad3d9507d422ec1c6f1a7f792a4542f9a64f0de3d4f4af69f0fb3390ef3577dcf8844cf744426d173b0934d879148062c5ca64022dc99af370dbfeaf2b5d4a279b20c54a361bca12c25bf185c2885519bbbc36e46ddb083080f0cc5b1f2eafe964ebce5071b0ae7d92a34a9193861b996d2c0299b1993f41063a27038199365a6e3cb27a02ffa9facdc48a63713eb5fbf90e9fd73056aba16b28e5fee";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        baseDao = BaseDaoSingleton.getInstance(this);
-        asynchBaseDao = BaseDaoSingleton.getAsynchInstance(this);
-        Log.i(TAG, SIGN);
-        if (!isMyApp()) {
-            Log.i(TAG, "isMyApp");
-            this.finish();
-        }
-    }
-
-
-    @Override
-    public void setContentView(View layoutResID) {
-        super.setContentView(layoutResID);
-        try {
-            View view = findViewById(R.id.titleBar);
-
-            if (view != null && view instanceof TitleBar) {
-                titleBar = (TitleBar) view;
-                titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        finish();
-                    }
-                });
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public boolean isMyApp() {
-        String signStr = getSign();
-        return SIGN.equals(signStr);
-    }
-
-    public String getSign() {
-
-        try {
-            PackageInfo packageInfo = this.getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_SIGNATURES);
-            Signature[] signatures = packageInfo.signatures;
-            StringBuilder builder = new StringBuilder();
-            for (Signature signature : signatures) {
-                builder.append(signature.toCharsString());
-            }
-            return builder.toString();
-        } catch (PackageManager.NameNotFoundException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-}
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivity.java
deleted file mode 100644
index abdffbc..0000000
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/BaseNfcActivity.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.dayu.qihealonelibrary.activity;
-import android.app.Activity;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.os.Handler;
-
-import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.qihealonelibrary.card.UserCard;
-
-
-/**
- * Author:Createdby zuo on 2018/12/2.
- * Email:584182977@qq.com
- * Description:
- * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
- * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
- * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
- * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
- */
-public class BaseNfcActivity extends BaseActivity {
-
-
-    protected NfcAdapter mNfcAdapter;
-    private PendingIntent mPendingIntent;
-
-    volatile UserCard userCard;
-
-    /**
-     * onCreat->onStart->onResume->onPause->onStop->onDestroy
-     * 鍚姩Activity锛岀晫闈㈠彲瑙佹椂.
-     */
-
-
-
-    public static int READER_FLAGS =
-            NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        //姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
-        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
-        Intent intent = new Intent(this, getClass());
-
-        //涓�鏃︽埅鑾種FC娑堟伅锛屽氨浼氶�氳繃PendingIntent璋冪敤绐楀彛
-        mPendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
-
-//        mLoyaltyCardReader = new LoyaltyCardReader(this);
-//        if (mNfcAdapter != null) {
-//            mNfcAdapter.enableReaderMode(this, mLoyaltyCardReader, READER_FLAGS, null);
-//        }
-
-    }
-
-    /**
-     * 鑾峰緱鐒︾偣锛屾寜閽彲浠ョ偣鍑�
-     */
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (!ifNFCUse(this)) {
-        }
-        //璁剧疆澶勭悊浼樹簬鎵�鏈夊叾浠朜FC鐨勫鐞�
-        if (mNfcAdapter != null)
-            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
-    }
-
-    /**
-     * 鏆傚仠Activity锛岀晫闈㈣幏鍙栫劍鐐癸紝鎸夐挳鍙互鐐瑰嚮
-     */
-    @Override
-    public void onPause() {
-        super.onPause();
-        //鎭㈠榛樿鐘舵��
-        if (mNfcAdapter != null)
-            mNfcAdapter.disableForegroundDispatch(this);
-//            mNfcAdapter.disableReaderMode(this);
-
-    }
-
-
-
-    /**
-     * 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
-     *
-     * @return
-     */
-    protected Boolean ifNFCUse(Activity context) {
-        if (mNfcAdapter == null) {
-            TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�", new TipUtil.TipListener() {
-                @Override
-                public void onCancle() {
-                    BaseNfcActivity.this.finish();
-                }
-            });
-            return false;
-        }
-        if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) {
-            TipUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
-            return false;
-        }
-        return true;
-    }
-
-
-}
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java
similarity index 96%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java
index 2dc8cda..871115d 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/DomainActivityQHAlone.java
@@ -3,7 +3,6 @@
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
-import android.view.View;
 
 import com.dayu.baselibrary.utils.TipUtil;
 
@@ -18,7 +17,7 @@
  * Time: 10:19
  * 澶囨敞锛� 璁剧疆鍗″煙鍚嶅拰ip
  */
-public class DomainActivity extends BaseActivity {
+public class DomainActivityQHAlone extends QHAloneBaseActivity {
     ActivityDomainQhaBinding binding;
     DomainBean domainBean;
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java
similarity index 97%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java
index 6f1eb1c..ef7b600 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ElectricPriceActivityQHAlone.java
@@ -19,7 +19,7 @@
  * Date: 2023-11-10 10:18
  * Description: 鐢甸噺鍗曚环璁剧疆
  */
-public class ElectricPriceActivity extends BaseActivity {
+public class ElectricPriceActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityElectricPriceQhaBinding electricPriceBinding;
     ElectricPriceBean electricPriceBean;
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java
similarity index 77%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java
index bafb396..a266718 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/HomeActivityQHAlone.java
@@ -19,9 +19,9 @@
  * Date: 2023-11-6 19:52
  * Description: 涓荤晫闈�
  */
-public class HomeActivity extends BaseActivity {
+public class HomeActivityQHAlone extends QHAloneBaseActivity {
 
-    public static HomeActivity homeActivity;
+    public static HomeActivityQHAlone homeActivity;
     ActivityHomeQhaBinding homeBinding;
 
     @Override
@@ -41,9 +41,9 @@
             public void onClick(View v) {
                 AdminDataBean adminData = baseDao.adminDao().findFirst();
                 if (adminData != null) {
-                    startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
+                    startActivity(new Intent(HomeActivityQHAlone.this, NewCardActivityQHAlone.class));
                 } else {
-                    TipUtil.show(HomeActivity.this, "璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆鍖哄煙鍙�");
+                    TipUtil.show(HomeActivityQHAlone.this, "璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆鍖哄煙鍙�");
                 }
 
             }
@@ -54,7 +54,7 @@
                 AdminDataBean adminData = baseDao.adminDao().findFirst();
                 if (adminData != null) {
 //                    if (adminData.getWaterPrice() != 0) {
-                        startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
+                        startActivity(new Intent(HomeActivityQHAlone.this, RechargeActivityQHAlone.class));
 //                    } else {
 //                        TipUtil.show(HomeActivity.this, "璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆姘翠环");
 //                    }
@@ -67,14 +67,14 @@
         homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class));
+                startActivity(new Intent(HomeActivityQHAlone.this, ReadCardAcitivy.class));
             }
         });
         //绠$悊绯荤粺鐣岄潰
         homeBinding.homeAdmin.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(HomeActivityQHAlone.this, new Intent(HomeActivityQHAlone.this, SysActivityQHAlone.class));
                 passWordDialog.show();
             }
         });
@@ -82,14 +82,14 @@
         homeBinding.homeParameter.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(HomeActivityQHAlone.this, new Intent(HomeActivityQHAlone.this, ParameterActivityQHAlone.class));
                 passWordDialog.show();
             }
         });
         homeBinding.homeMy.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(HomeActivity.this, MyActivity.class));
+                startActivity(new Intent(HomeActivityQHAlone.this, MyActivityQHAlone.class));
 
             }
         });
@@ -109,10 +109,10 @@
     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();
+                Toast.makeText(HomeActivityQHAlone.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show();
                 mExitTime = System.currentTimeMillis();
             } else {
-                HomeActivity.this.finish();
+                HomeActivityQHAlone.this.finish();
             }
             return true;
         }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java
similarity index 96%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java
index 034d137..6591469 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/IdentifyingActivityQHAlone.java
@@ -27,7 +27,7 @@
  * Time: 10:21
  * 澶囨敞锛氬崱鏍囪瘑璁剧疆
  */
-public class IdentifyingActivity extends BaseActivity {
+public class IdentifyingActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityIdentyfyingQhaBinding binding;
 
@@ -48,7 +48,7 @@
         binding.chooseCardType.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
+                ChooseView.getIntence(IdentifyingActivityQHAlone.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
                     @Override
                     public void onOptionsSelect(int options1) {
                         chooseData(nianfen[options1]);
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java
similarity index 81%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java
index d376aa6..e741296 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManageSetUpActivityQHAlone.java
@@ -8,7 +8,7 @@
  * Date: 2023-11-08 16:52
  * Description:绠$悊鍗¤缃晫闈�
  */
-public class ManageSetUpActivity extends BaseActivity {
+public class ManageSetUpActivityQHAlone extends QHAloneBaseActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivityQHAlone.java
similarity index 93%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivityQHAlone.java
index 1540b70..884ebd3 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerListActivityQHAlone.java
@@ -13,7 +13,6 @@
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.view.EdtDialog;
 import com.dayu.qihealonelibrary.adapter.ManagerCardAdapter;
-import com.dayu.qihealonelibrary.adapter.NewCardAdapter;
 import com.dayu.qihealonelibrary.card.ManageCard;
 import com.dayu.qihealonelibrary.databinding.ActivityManagerListQhaBinding;
 import com.dayu.qihealonelibrary.dbBean.UserCardBean;
@@ -34,7 +33,7 @@
  * Time: 11:20
  * 澶囨敞锛氱鐞嗗崱閫夋嫨鏈湴鐢ㄦ埛鐣岄潰
  */
-public class ManagerListActivity extends BaseActivity {
+public class ManagerListActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityManagerListQhaBinding binding;
     List<UserCardBean> userCardBeanList = new ArrayList<>();
@@ -65,7 +64,7 @@
         hex = HexUtil.spaceHex(hex);
         hex = HexUtil.HighLowHex(hex);
         manageCard.setUserCard(hex);
-        Intent intent = new Intent(ManagerListActivity.this, NFCWreatActivity.class);
+        Intent intent = new Intent(ManagerListActivityQHAlone.this, NFCWreatActivityQHAlone.class);
         intent.putExtra("manageCard", manageCard);
 //        intent.putExtra("cardNumber", cardNumber);
         intent.putExtra("userCardBean_manager", userCardBean);
@@ -125,7 +124,7 @@
 
     private void setRightButton() {
         titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, v -> {
-            edtDialog = new EdtDialog(ManagerListActivity.this, "鍙緭鍏ュ鍚嶃�佽韩浠借瘉鍙枫�佹墜鏈哄彿鎼滅储", new EdtDialog.DialogBack() {
+            edtDialog = new EdtDialog(ManagerListActivityQHAlone.this, "鍙緭鍏ュ鍚嶃�佽韩浠借瘉鍙枫�佹墜鏈哄彿鎼滅储", new EdtDialog.DialogBack() {
                 @Override
                 public void onOk(String data) {
                     List<UserCardBean> beans = baseDao.userCardDao().findByData(data);
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivityQHAlone.java
similarity index 87%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivityQHAlone.java
index 0ff88b5..14836af 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ManagerReadActivityQHAlone.java
@@ -17,7 +17,7 @@
  * Time: 11:05
  * 澶囨敞锛�
  */
-public class ManagerReadActivity extends BaseNfcActivity {
+public class ManagerReadActivityQHAlone extends QHAloneBaseNfcActivity {
 
     ActivityManagerReadQhaBinding binding;
     Intent intent;
@@ -30,14 +30,14 @@
 
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             getCardNumber();
         }
-        super.onNewIntent(intent);
     }
 
 
@@ -47,10 +47,10 @@
             TipUtil.show(this, "璇诲崱鎴愬姛锛屾帴涓嬫潵浼氳烦杞埌鐢ㄦ埛鍒楄〃閫夋嫨琛ュ崱鐨勭敤鎴枫��", new TipUtil.TipListener() {
                 @Override
                 public void onCancle() {
-                    Intent intent = new Intent(ManagerReadActivity.this, ManagerListActivity.class);
+                    Intent intent = new Intent(ManagerReadActivityQHAlone.this, ManagerListActivityQHAlone.class);
                     intent.putExtra("cardNumber", cardNumber);
                     startActivity(intent);
-                    ManagerReadActivity.this.finish();
+                    ManagerReadActivityQHAlone.this.finish();
                 }
             });
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java
similarity index 91%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java
index 4520884..a8e618b 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/MyActivityQHAlone.java
@@ -14,7 +14,6 @@
 
 import androidx.annotation.NonNull;
 
-import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.view.PassWordDialog;
 import com.dayu.baselibrary.view.datepicker.CustomDatePicker;
@@ -36,7 +35,7 @@
  * Date: 2023-11-10 19:52
  * Description: 涓汉涓績
  */
-public class MyActivity extends BaseActivity {
+public class MyActivityQHAlone extends QHAloneBaseActivity {
 
 
     private CustomDatePicker beginDatePicker;
@@ -63,7 +62,7 @@
         myBinding.myAdmin.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(MyActivityQHAlone.this, new Intent(MyActivityQHAlone.this, AdminSetupActivityQHAlone.class));
                 passWordDialog.show();
 //                startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
             }
@@ -71,26 +70,26 @@
         myBinding.myWaterPriceLL.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(MyActivityQHAlone.this, new Intent(MyActivityQHAlone.this, AdminSetupActivityQHAlone.class));
                 passWordDialog.show();
             }
         });
         myBinding.myPsw.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, PassWordActivity.class));
+                startActivity(new Intent(MyActivityQHAlone.this, PassWordActivityQHAlone.class));
             }
         });
         myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, RechargeListActivity.class));
+                startActivity(new Intent(MyActivityQHAlone.this, RechargeListActivityQHAlone.class));
             }
         });
         myBinding.myNewCardListLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, NewCardListActivity.class));
+                startActivity(new Intent(MyActivityQHAlone.this, NewCardListActivityQHAlone.class));
             }
         });
         myBinding.myNewCardOut.setOnClickListener(new View.OnClickListener() {
@@ -117,13 +116,13 @@
         public boolean handleMessage(@NonNull Message msg) {
             switch (msg.what) {
                 case 1:
-                    TipUtil.show(MyActivity.this, "瀵煎嚭鎴愬姛!");
+                    TipUtil.show(MyActivityQHAlone.this, "瀵煎嚭鎴愬姛!");
                     break;
                 case 3:
-                    TipUtil.show(MyActivity.this, "璁板綍涓虹┖!");
+                    TipUtil.show(MyActivityQHAlone.this, "璁板綍涓虹┖!");
                     break;
                 default:
-                    TipUtil.show(MyActivity.this, "瀵煎嚭澶辫触!");
+                    TipUtil.show(MyActivityQHAlone.this, "瀵煎嚭澶辫触!");
                     break;
             }
             stopAnim();
@@ -163,7 +162,7 @@
                         String[] title;
                         String fileName;
                         if (listData == null || listData.size() == 0) {
-                            TipUtil.show(MyActivity.this, "璁板綍涓虹┖");
+                            TipUtil.show(MyActivityQHAlone.this, "璁板綍涓虹┖");
                             return;
                         }
                         if (isRechargeList) {
@@ -174,7 +173,7 @@
                             fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
                         }
                         ExcelUtil.initExcel(fileName, title);
-                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this);
+                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivityQHAlone.this);
                         handler.sendEmptyMessage(1);
                     } catch (Exception e) {
                         handler.sendEmptyMessage(2);
@@ -271,7 +270,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(MyActivityQHAlone.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     try {
                         endTime = endTime + (1000 * 60 * 60 * 24) - 1;
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
similarity index 92%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
index 52e0d04..4306e84 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
@@ -47,7 +47,7 @@
  * Date: 2023-11-08 21:19
  * Description: nfc鍐欏崱鐣岄潰
  */
-public class NFCWreatActivity extends BaseNfcActivity {
+public class NFCWreatActivityQHAlone  extends QHAloneBaseNfcActivity {
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
@@ -97,7 +97,7 @@
     //鎵撳嵃
     QHAloneApplication baseApp;
 
-    public static NFCWreatActivity nfcWreatActivity;
+    public static NFCWreatActivityQHAlone nfcWreatActivity;
     /**
      * 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
      */
@@ -235,9 +235,9 @@
                 binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
                 binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
             } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) {
-                TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+                TipUtil.show(NFCWreatActivityQHAlone.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
             } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
-                TipUtil.show(NFCWreatActivity.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�");
+                TipUtil.show(NFCWreatActivityQHAlone.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�");
             } else {
                 Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
                 userCardBean.setCardNumber(cardNumber);
@@ -307,9 +307,9 @@
                             //鐢ㄦ埛鍗�
                             startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱");
                         } else if (!TextUtils.isEmpty(morny)) {
-                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish());
+                            TipUtil.show(NFCWreatActivityQHAlone.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivityQHAlone.this.finish());
                         } else {
-                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish());
+                            TipUtil.show(NFCWreatActivityQHAlone.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivityQHAlone.this.finish());
                         }
 
                     } catch (Exception e) {
@@ -317,7 +317,7 @@
                         CrashReport.postCatchedException(e);
                     }
                 } else {
-                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
+                    TipUtil.show(NFCWreatActivityQHAlone.this, "鍐欏崱澶辫触");
                 }
                 stopAnim();
             } else if (userCard == null && userCardBean != null) {
@@ -333,9 +333,9 @@
         }
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
+    public void onNfcBack(Intent intent) {
         try {
             this.intent = intent;
 //            startAnim();
@@ -443,13 +443,13 @@
                     setPrinterData(rechargeBean);
                     startDetailActivity(userName, "缁堢鍐欏崱");
                 } else {
-                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
+                    TipUtil.show(NFCWreatActivityQHAlone.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
                 }
             } else {
-                TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
+                TipUtil.show(NFCWreatActivityQHAlone.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
             }
         } catch (Exception e) {
-            TipUtil.show(NFCWreatActivity.this, "璇诲彇閿欒锛岃閲嶈瘯");
+            TipUtil.show(NFCWreatActivityQHAlone.this, "璇诲彇閿欒锛岃閲嶈瘯");
         }
     }
 
@@ -560,7 +560,7 @@
 
 
     private void startDetailActivity(String userName, String statu) {
-        Intent detail = new Intent(this, RechargeDetailActivity.class);
+        Intent detail = new Intent(this, RechargeDetailActivityQHAlone.class);
         detail.putExtra("userName", userName);
         detail.putExtra("statu", statu);
         detail.putExtra("userCard", userCard);
@@ -573,13 +573,13 @@
         }
 
         startActivity(detail);
-        if (NewCardActivity.newCardActivity != null) {
-            NewCardActivity.newCardActivity.finish();
+        if (NewCardActivityQHAlone.newCardActivity != null) {
+            NewCardActivityQHAlone.newCardActivity.finish();
         }
-        if (RechargeActivity.rechargeActivity != null) {
-            RechargeActivity.rechargeActivity.finish();
+        if (RechargeActivityQHAlone.rechargeActivity != null) {
+            RechargeActivityQHAlone.rechargeActivity.finish();
         }
-        NFCWreatActivity.nfcWreatActivity.finish();
+        NFCWreatActivityQHAlone.nfcWreatActivity.finish();
     }
 
 
@@ -605,15 +605,15 @@
     }
 
     private void back() {
-        confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
+        confirmDialog = new ConfirmDialog(NFCWreatActivityQHAlone.this, v -> {
             confirmDialog.dismiss();
-            if (NewCardActivity.newCardActivity != null) {
-                NewCardActivity.newCardActivity.finish();
+            if (NewCardActivityQHAlone.newCardActivity != null) {
+                NewCardActivityQHAlone.newCardActivity.finish();
             }
-            if (RechargeActivity.rechargeActivity != null) {
-                RechargeActivity.rechargeActivity.finish();
+            if (RechargeActivityQHAlone.rechargeActivity != null) {
+                RechargeActivityQHAlone.rechargeActivity.finish();
             }
-            NFCWreatActivity.nfcWreatActivity.finish();
+            NFCWreatActivityQHAlone.nfcWreatActivity.finish();
         });
         confirmDialog.show();
     }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java
similarity index 94%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java
index 9627cb6..3adde6f 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardActivityQHAlone.java
@@ -38,7 +38,7 @@
  * Date: 2023-11-10 19:52
  * Description: 鏂板崱娉ㄥ唽
  */
-public class NewCardActivity extends BaseActivity {
+public class NewCardActivityQHAlone extends QHAloneBaseActivity {
 
     public static final int SCAN_IDCARD_REQUEST = 1;
     UserCardBean userCardBean;
@@ -46,7 +46,7 @@
     ActivityNewCardQhaBinding newCardBinding;
     AdminDataBean adminData;
 
-    static NewCardActivity newCardActivity;
+    static NewCardActivityQHAlone newCardActivity;
     private int defValueMainId = 2;
     private int defValueSubId = 0;
 
@@ -84,11 +84,11 @@
                     && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
             ) {
                 if (userName.length() <= 1 || !validateName(userName)) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
+                    TipUtil.show(NewCardActivityQHAlone.this, "璇疯緭鍏ユ纭鍚�");
                 } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
+                    TipUtil.show(NewCardActivityQHAlone.this, "璇疯緭鍏ユ纭墜鏈哄彿");
                 } else if (!Utils.check(userID)) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
+                    TipUtil.show(NewCardActivityQHAlone.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
                 } else {
                     userCardBean = new UserCardBean();
                     userCardBean.setUserName(userName);
@@ -108,14 +108,14 @@
                     userCard.setSurplusWater(0);
                     userCard.setRechargeDate(Calendar.getInstance());
 
-                    Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class);
+                    Intent intent = new Intent(NewCardActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                     intent.putExtra("userCard", userCard);
                     intent.putExtra("dbUserCard", userCardBean);
                     startActivity(intent);
                 }
 
             } else {
-                TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                TipUtil.show(NewCardActivityQHAlone.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
             }
         });
     }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
similarity index 97%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
index c13fa90..4c5ab86 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NewCardListActivityQHAlone.java
@@ -32,7 +32,7 @@
  * Description: 鏂板崱娉ㄥ唽鍒楄〃鐣岄潰
  */
 
-public class NewCardListActivity extends BaseActivity {
+public class NewCardListActivityQHAlone extends QHAloneBaseActivity {
 
 
     ActivityNewcardListQhaBinding newcardListBinding;
@@ -152,7 +152,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(NewCardListActivityQHAlone.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
 //                    try {
 //                        endTime = endTime + (1000 * 60 * 60 * 24) - 1;
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java
similarity index 72%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java
index aa8ed5e..04cdf7c 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ParameterActivityQHAlone.java
@@ -3,7 +3,6 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
-import android.view.View;
 
 import com.dayu.qihealonelibrary.databinding.ActivityParameterQhaBinding;
 
@@ -13,7 +12,7 @@
  * Date: 2023-11-06 11:47
  * Description: 鍙傛暟璁剧疆鐣岄潰
  */
-public class ParameterActivity extends BaseActivity {
+public class ParameterActivityQHAlone extends QHAloneBaseActivity {
     ActivityParameterQhaBinding binding;
 
     @Override
@@ -27,27 +26,27 @@
     private void initView() {
         //璁剧疆鍩熷悕鍗�
         binding.parameterDomain.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, DomainActivity.class);
+            Intent intent = new Intent(ParameterActivityQHAlone.this, DomainActivityQHAlone.class);
             startActivity(intent);
         });
 //       姘存车鍔熺巼璁剧疆
         binding.parameterPower.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, PowerActivity.class);
+            Intent intent = new Intent(ParameterActivityQHAlone.this, PowerActivityQHAlone.class);
             startActivity(intent);
         });
         //鐢甸噺鍗曚环璁剧疆
         binding.parameterElectricPrice.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, ElectricPriceActivity.class);
+            Intent intent = new Intent(ParameterActivityQHAlone.this, ElectricPriceActivityQHAlone.class);
             startActivity(intent);
         });
         //鍗℃爣璇嗚缃�
         binding.parameterCardIdentifying.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, IdentifyingActivity.class);
+            Intent intent = new Intent(ParameterActivityQHAlone.this, IdentifyingActivityQHAlone.class);
             startActivity(intent);
         });
         //瀵嗙爜鍗¤缃瘑鐮�
         binding.parameterPassWordCard.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, PasswordCardActivity.class);
+            Intent intent = new Intent(ParameterActivityQHAlone.this, PasswordCardActivityQHAlone.class);
             startActivity(intent);
         });
         //鍖哄煙琛ㄥ彿鍗�
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java
similarity index 80%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java
index fce5729..a604d28 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PassWordActivityQHAlone.java
@@ -3,7 +3,6 @@
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
-import android.view.View;
 
 import com.dayu.baselibrary.dbbean.PassWordBean;
 import com.dayu.baselibrary.utils.TipUtil;
@@ -17,7 +16,7 @@
  * Date: 2023-11-10 19:52
  * Description: 淇敼瀵嗙爜鐣岄潰
  */
-public class PassWordActivity extends BaseActivity {
+public class PassWordActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityPswQhaBinding pswBinding;
 
@@ -42,18 +41,18 @@
                         if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) {
                             passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString());
                             baseBaseDao.loginPsDao().insert(passWordBean);
-                            TipUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚", () -> {
-                                PassWordActivity.this.finish();
+                            TipUtil.show(PassWordActivityQHAlone.this, "瀵嗙爜淇敼瀹屾垚", () -> {
+                                PassWordActivityQHAlone.this.finish();
                             });
 
                         } else {
-                            TipUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
+                            TipUtil.show(PassWordActivityQHAlone.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
                         }
                     } else {
-                        TipUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
+                        TipUtil.show(PassWordActivityQHAlone.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
                     }
                 } else {
-                    TipUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�");
+                    TipUtil.show(PassWordActivityQHAlone.this, "璇疯緭瀹屽唴瀹�");
                 }
 
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java
similarity index 93%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java
index 5abced2..4177bef 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PasswordCardActivityQHAlone.java
@@ -2,8 +2,6 @@
 
 import android.os.Bundle;
 import android.text.Editable;
-import android.text.InputFilter;
-import android.text.Spanned;
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.LayoutInflater;
@@ -19,7 +17,7 @@
  * Time: 16:21
  * 澶囨敞锛氬瘑鐮佸崱璁剧疆鐣岄潰
  */
-public class PasswordCardActivity extends BaseActivity {
+public class PasswordCardActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityPasswordCardQhaBinding binding;
 
@@ -55,7 +53,7 @@
                     if (data.length() == 12) {
                         cardBean.setPassWord(data);
                         baseDao.passWordCardDao().insert(cardBean);
-                        TipUtil.show(PasswordCardActivity.this, "淇濆瓨鎴愬姛");
+                        TipUtil.show(PasswordCardActivityQHAlone.this, "淇濆瓨鎴愬姛");
                         initData();
                     } else {
                         TipUtil.show("璇疯緭鍏ユ纭殑12浣嶅瓧绗︾殑16杩涘埗鍗″瘑鐮�");
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java
similarity index 96%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java
index 090af4c..e5ada44 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/PowerActivityQHAlone.java
@@ -15,7 +15,7 @@
  * Date: 2023-11-08 21:19
  * Description: 鍔熺巼璁剧疆
  */
-public class PowerActivity extends BaseActivity {
+public class PowerActivityQHAlone extends QHAloneBaseActivity {
     ActivityPowerQhaBinding powerBinding;
     PowerBean powerBean = new PowerBean();
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseActivity.java
new file mode 100644
index 0000000..e0ce5ba
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseActivity.java
@@ -0,0 +1,30 @@
+package com.dayu.qihealonelibrary.activity;
+
+import android.os.Bundle;
+
+import com.dayu.baselibrary.activity.BaseActivity;
+import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
+import com.dayu.qihealonelibrary.dao.BaseDaoSingleton;
+
+
+/**
+ * Created by zuoxiao on 2018/12/20.
+ */
+
+public class QHAloneBaseActivity extends BaseActivity {
+    private final String TAG = "BaseActivity";
+
+    //z涓荤嚎绋嬫煡璇�
+    public QHAloneAppDatabase baseDao;
+    //寮傛绾跨▼鏌ヨ
+    public QHAloneAppDatabase asynchBaseDao;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        baseDao = BaseDaoSingleton.getInstance(this);
+        asynchBaseDao = BaseDaoSingleton.getAsynchInstance(this);
+    }
+
+
+}
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseNfcActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseNfcActivity.java
new file mode 100644
index 0000000..2e1130a
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/QHAloneBaseNfcActivity.java
@@ -0,0 +1,42 @@
+package com.dayu.qihealonelibrary.activity;
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+
+import com.dayu.baselibrary.activity.BaseNfcActivity;
+import com.dayu.baselibrary.dao.AppDatabase;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.qihealonelibrary.card.UserCard;
+import com.dayu.qihealonelibrary.dao.BaseDaoSingleton;
+import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
+
+
+/**
+ * Author:Createdby zuo on 2018/12/2.
+ * Email:584182977@qq.com
+ * Description:
+ * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
+ * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
+ * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
+ * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
+ */
+public abstract class QHAloneBaseNfcActivity extends BaseNfcActivity {
+
+    UserCard userCard;
+
+    //z涓荤嚎绋嬫煡璇�
+    public QHAloneAppDatabase baseDao;
+    //寮傛绾跨▼鏌ヨ
+    public QHAloneAppDatabase asynchBaseDao;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        baseDao = BaseDaoSingleton.getInstance(this);
+        asynchBaseDao = BaseDaoSingleton.getAsynchInstance(this);
+    }
+
+
+}
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
index 3210875..258c817 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -36,7 +36,7 @@
  * Date: 2023-11-10 19:52
  * Description: 璇诲崱鐣岄潰
  */
-public class ReadCardAcitivy extends BaseNfcActivity {
+public class ReadCardAcitivy extends QHAloneBaseNfcActivity {
 
     volatile UserCard userCard;
     ActivityRedCardQhaBinding redCardBinding;
@@ -79,14 +79,14 @@
     }
 
 
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             readAllData(intent);
         }
-        super.onNewIntent(intent);
     }
 
     /**
@@ -121,7 +121,7 @@
 
                 if (!data.isEmpty()) {
                     if (!TextUtils.isEmpty(cardNumber)) {
-                        userCard = UserCard.getBean(data);
+                        userCard = new UserCard().getBean(data);
                         List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
                         if (userCardBeans != null && !userCardBeans.isEmpty()) {
                             UserCardBean userName = userCardBeans.get(0);
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
similarity index 93%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
index bfce39b..e057c18 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
@@ -21,8 +21,6 @@
 import com.dayu.qihealonelibrary.dbBean.UserCardBean;
 import com.dayu.qihealonelibrary.tools.NfcReadHelper;
 import com.dayu.qihealonelibrary.utils.CardCommon;
-import com.dayu.qihealonelibrary.utils.DeviceNumberUtils;
-import com.dayu.qihealonelibrary.view.ProgressDialog;
 import com.tencent.bugly.crashreport.CrashReport;
 
 import java.util.Calendar;
@@ -35,12 +33,12 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�肩晫闈�
  */
-public class RechargeActivity extends BaseNfcActivity {
+public class RechargeActivityQHAlone extends QHAloneBaseNfcActivity {
 
     Intent intent;
 
     ActivityRechargeQhaBinding binding;
-    public static RechargeActivity rechargeActivity;
+    public static RechargeActivityQHAlone rechargeActivity;
 
     AdminDataBean adminData;
     String userName;
@@ -66,7 +64,8 @@
         }
     }
 
-    public void onNewIntent(Intent intent) {
+    @Override
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         try {
             readAllData();
@@ -74,7 +73,6 @@
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
-        super.onNewIntent(intent);
     }
 
 
@@ -93,8 +91,8 @@
         if (!data.isEmpty()) {
             if (!TextUtils.isEmpty(cardNumber)) {
                 setUserData(cardType, cardNumber, data);
-                if(priceBean!=null){
-                    binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�"+priceBean.getPrice()+"鍏�/搴�");
+                if (priceBean != null) {
+                    binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + priceBean.getPrice() + "鍏�/搴�");
                 }
             } else {
                 TipUtil.show(this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
@@ -130,7 +128,7 @@
         }
 
 
-        userCard = UserCard.getBean(data);
+        userCard = new UserCard().getBean(data);
         List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
         AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
 
@@ -191,7 +189,7 @@
         binding.rechargeRegistBtn.setOnClickListener(v -> {
             String morny = binding.rechargeWater.getText().toString();
             if (!TextUtils.isEmpty(morny)) {
-                Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+                Intent intent = new Intent(RechargeActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                 //褰撳墠閲戦鍗曚綅涓哄厓
                 intent.putExtra("morny", morny);
                 intent.putExtra("userName", userName);
@@ -201,7 +199,7 @@
 //                intent.putExtra("rechageWater", rechageWater);
                 startActivity(intent);
             } else {
-                TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+                TipUtil.show(RechargeActivityQHAlone.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
             }
         });
     }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivityQHAlone.java
similarity index 97%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivityQHAlone.java
index 0f207ef..a9dacd5 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeDetailActivityQHAlone.java
@@ -18,7 +18,7 @@
  * Time: 15:01
  * 澶囨敞锛氬啓鍗″悗鐨勮鎯呴〉
  */
-public class RechargeDetailActivity extends BaseActivity {
+public class RechargeDetailActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityRechargeDetailQhaBinding binding;
     UserCard userCard;
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
similarity index 97%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
index 5159f8f..cc41fe9 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeListActivityQHAlone.java
@@ -33,7 +33,7 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�艰褰�
  */
-public class RechargeListActivity extends BaseActivity {
+public class RechargeListActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityRechargeListQhaBinding rechargeListBinding;
     RechargeAdapter adapter;
@@ -163,7 +163,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(RechargeListActivityQHAlone.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     endTime = endTime + (1000 * 60 * 60 * 24) - 1;
                     rechargeList.clear();
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java
similarity index 96%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java
index 394f560..4be6be6 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RegionActivityQHAlone.java
@@ -16,7 +16,7 @@
  * Time: 17:28
  * 澶囨敞锛氬尯鍩熸爣鍙峰崱璁剧疆鐣岄潰
  */
-public class RegionActivity extends BaseActivity {
+public class RegionActivityQHAlone extends QHAloneBaseActivity {
 
 
     ActivityRegionQhaBinding binding;
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java
similarity index 78%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivity.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java
index 9438eef..0c4e95e 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivity.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/SysActivityQHAlone.java
@@ -3,26 +3,16 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
-import android.view.View;
 
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.qihealonelibrary.card.CleanCard;
-import com.dayu.qihealonelibrary.card.CleanUserCard;
-import com.dayu.qihealonelibrary.card.ConfigurationPowerCard;
-import com.dayu.qihealonelibrary.card.ConfigureDeviceRegistrationCrad;
-import com.dayu.qihealonelibrary.card.DomainCard;
 import com.dayu.qihealonelibrary.card.ElectricPriceCard;
-import com.dayu.qihealonelibrary.card.ManageCard;
 import com.dayu.qihealonelibrary.card.PassWordCard;
 import com.dayu.qihealonelibrary.card.RegionCard;
-import com.dayu.qihealonelibrary.card.RegisteredCard;
-import com.dayu.qihealonelibrary.card.TestCard;
 import com.dayu.qihealonelibrary.databinding.ActivityAdminQhaBinding;
 import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
-import com.dayu.qihealonelibrary.dbBean.DomainBean;
 import com.dayu.qihealonelibrary.dbBean.ElectricPriceBean;
 import com.dayu.qihealonelibrary.dbBean.PassWordCardBean;
-import com.dayu.qihealonelibrary.dbBean.PowerBean;
 import com.dayu.qihealonelibrary.view.AdminCardDialog;
 
 
@@ -32,7 +22,7 @@
  * Date: 2023-11-5 09:52
  * Description: 绠$悊绯荤粺
  */
-public class SysActivity extends BaseActivity {
+public class SysActivityQHAlone extends QHAloneBaseActivity {
 
     ActivityAdminQhaBinding adminBinding;
 
@@ -57,7 +47,7 @@
         });
         //鍒朵綔娓呴浂鍗�
         adminBinding.adminCleanZero.setOnClickListener(v -> {
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
             CleanCard cleanCard = new CleanCard();
             intent.putExtra("cleanCard", cleanCard);
             startActivity(intent);
@@ -66,7 +56,7 @@
         adminBinding.adminPassWordCard.setOnClickListener(v -> {
             PassWordCardBean powerBean = baseDao.passWordCardDao().findFirst();
             if (powerBean != null) {
-                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+                Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
                 PassWordCard passWordCard = new PassWordCard();
                 passWordCard.setPassWord(powerBean.getPassWord());
                 intent.putExtra("passWordCard", passWordCard);
@@ -79,7 +69,7 @@
         //鍒朵綔鍖哄煙琛ㄥ彿鍗�
         adminBinding.adminRegionCard.setOnClickListener(v -> {
 
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
             RegionCard regionCard = new RegionCard();
             AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
             regionCard.setRegion(Integer.valueOf(adminDataBean.getAddressCode()));
@@ -89,7 +79,7 @@
         });
         //鍒朵綔璁剧疆鐢ㄦ埛鐢甸噺鍗曚环鍗�
         adminBinding.adminElectricCard.setOnClickListener(v -> {
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHAlone.this, NFCWreatActivityQHAlone.class);
             ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
             if (electricPriceBean != null) {
                 ElectricPriceCard electricPriceCard = new ElectricPriceCard();
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ManagerCardAdapter.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ManagerCardAdapter.java
index 9acb7ba..4afff02 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ManagerCardAdapter.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/adapter/ManagerCardAdapter.java
@@ -11,7 +11,7 @@
 import com.dayu.baselibrary.databinding.ItemNoMoreBinding;
 import com.dayu.baselibrary.utils.DateUtil;
 import com.dayu.qihealonelibrary.R;
-import com.dayu.qihealonelibrary.activity.ManagerListActivity;
+import com.dayu.qihealonelibrary.activity.ManagerListActivityQHAlone;
 import com.dayu.qihealonelibrary.databinding.QiheItemReplacementsBinding;
 import com.dayu.qihealonelibrary.dbBean.UserCardBean;
 
@@ -20,9 +20,9 @@
 public class ManagerCardAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
 
     List<UserCardBean> rechargeList;
-    ManagerListActivity mContext;
+    ManagerListActivityQHAlone mContext;
 
-    public ManagerCardAdapter(ManagerListActivity context, List<UserCardBean> rechargeList) {
+    public ManagerCardAdapter(ManagerListActivityQHAlone context, List<UserCardBean> rechargeList) {
         mContext = context;
         this.rechargeList = rechargeList;
     }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java
index 7ceea50..b814a8c 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/card/UserCard.java
@@ -1,5 +1,6 @@
 package com.dayu.qihealonelibrary.card;
 
+import com.dayu.baselibrary.bean.BaseUserCardCard;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.qihealonelibrary.utils.CardCommon;
 import com.tencent.bugly.crashreport.CrashReport;
@@ -14,7 +15,7 @@
  * Date: 2023-11-07 9:37
  * Description: 榻愭渤椤圭洰鐢ㄦ埛鍗$粨鏋�
  */
-public class UserCard implements Serializable {
+public class UserCard extends BaseUserCardCard implements Serializable {
     public String cardType = CardCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
 
     public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
@@ -38,7 +39,8 @@
      *
      * @param data
      */
-    public static UserCard getBean(List<byte[]> data) {
+    @Override
+    public  UserCard getBean(List<byte[]> data) {
         try {
             UserCard userCard = new UserCard();
             //绗�0鍧楄В鏋�
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NFCWriteHelper.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NFCWriteHelper.java
index eca029d..807013a 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NFCWriteHelper.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NFCWriteHelper.java
@@ -8,6 +8,7 @@
 import android.util.Log;
 
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.NfcWriteAdapter;
 import com.dayu.qihealonelibrary.card.UserCard;
 
 import java.io.IOException;
@@ -18,16 +19,16 @@
  * email 1058083107@qq.com
  * description
  */
-public class NFCWriteHelper extends BaseNFCHelper {
+public class NFCWriteHelper extends QHBaseNFCHelper {
 
-    private Tag tag;
 
     private static NFCWriteHelper helper;
-    private static int PASSWORD_LENTH = 12;
+    private NfcWriteAdapter adapter;
+
 
     public NFCWriteHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+        adapter = new NfcWriteAdapter(intent, activity);
     }
 
     /**
@@ -43,21 +44,6 @@
         return helper;
     }
 
-    /**
-     * 璁剧疆NFC鍗$殑璇诲彇瀵嗙爜
-     *
-     * @param str
-     * @return
-     */
-    public NFCWriteHelper setReadPassword(String str) {
-        if (null != str && (str.length() <= PASSWORD_LENTH)) {
-            for (int i = 0; i < str.length(); i++) {
-                defauleKey[i] = (byte) str.charAt(i);
-            }
-        }
-        return helper;
-    }
-
 
     /**
      * 鍐欏崱
@@ -66,54 +52,10 @@
      * @param
      */
     public boolean writeUserData(UserCard userCard) {
-        if (userCard != null) {
-            int a = 1;
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            for (int b = 0; b < 3; b++) {
-                                byte[] data;
-                                if (b == 0) {
-                                    data = userCard.getZeroBytes();
-                                } else if (b == 1) {
-                                    data = userCard.getOneBytes();
-                                } else {
-                                    data = userCard.getTwoBytes();
-                                }
-                                int bIndex = mfc.sectorToBlock(a);
-                                //鍐欏崱
-                                mfc.writeBlock(bIndex + b, data);
-                            }
-                            return true;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+        try {
+            return adapter.writeUserData(userCard);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -128,56 +70,10 @@
      * @param
      */
     public boolean writeData(byte[] str, int a, int b) {
-        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
-        if (str.length <= 16) {
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //鑾峰彇鎵囧尯鏁伴噺
-                        int count = mfc.getSectorCount();
-                        //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
-                        if (a > count - 1 || a < 0) {
-                            return false;
-                        }
-                        //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
-                        int bCount = mfc.getBlockCountInSector(a);
-                        //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
-                        if (b > bCount - 1 || b < 0) {
-                            return false;
-                        }
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            //鍐欏崱
-                            mfc.writeBlock(bIndex + b, str);
-                            return true;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+        try {
+            return adapter.writeData(str, a, b);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -190,53 +86,12 @@
      *          //     * @param callback 杩斿洖鐩戝惉
      */
     public boolean changePasword(int a, MifareClassic mfc) {
-//        MifareClassic mfc = MifareClassic.get(tag);
-        byte[] data = new byte[16];
-        if (null != mfc) {
-            try {
-//                mfc.connect();
-//                int count = mfc.getSectorCount();
-//                boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-//                //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
-//                if (isOpen) {
-                //灏嗗瘑鐮佽浆鎹负keyA
-                byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
-                for (int i = 0; i < dataA.length; i++) {
-                    data[i] = dataA[i];
-                }
-                //杈撳叆鎺у埗浣�
-                data[6] = (byte) 0xFF;
-                data[7] = (byte) 0x07;
-                data[8] = (byte) 0x80;
-                data[9] = (byte) 0x69;
-                byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
-                //灏嗗瘑鐮佽浆鎹负KeyB
-                for (int i = 0; i < dataB.length; i++) {
-                    data[i + 10] = dataB[i];
-                }
-                int bIndex = mfc.sectorToBlock(a);
-                int bCount = mfc.getBlockCountInSector(a);
-                //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
-                mfc.writeBlock(bIndex + bCount - 1, data);
-//                    byte[] dataa = mfc.readBlock(bIndex + bCount - 1);
-//                    // 淇敼瀵嗙爜 A
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA);
-//                    // 淇敼瀵嗙爜 B
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB);
-//                }
-                return true;
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-//                callback.isSusses(false);
-            } finally {
-//                try {
-//                    mfc.close();
-//                } catch (IOException e) {
-//                    e.printStackTrace();
-//                }
-            }
+        try {
+            return adapter.changePasword(a, mfc);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
+
         return false;
     }
 
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java
index aecd0a4..f17e28b 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/NfcReadHelper.java
@@ -2,23 +2,12 @@
 
 import android.app.Activity;
 import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.nfc.Tag;
-import android.nfc.tech.MifareClassic;
-import android.util.Log;
 
-import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper;
+import com.dayu.baselibrary.tools.nfc.NfcReadAdapter;
 import com.dayu.qihealonelibrary.card.UserCard;
-import com.dayu.qihealonelibrary.utils.CardCommon;
 
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author zx
@@ -26,16 +15,18 @@
  * email 1058083107@qq.com
  * description nfc璇诲彇宸ュ叿绫�
  */
-public class NfcReadHelper extends BaseNFCHelper {
+public class NfcReadHelper extends QHBaseNFCHelper {
 
-    private Tag tag;
+
     //    private NFCCallback callback;
     private static NfcReadHelper helper;
+    private NfcReadAdapter adapter;
 
 
     public NfcReadHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+        adapter = new NfcReadAdapter(intent, activity);
+
     }
 
     /**
@@ -57,60 +48,10 @@
      * @return
      */
     public UserCard getUserCardData() {
-        UserCard userCard = null;
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-
-                if (flag) {
-                    userCard = UserCard.getBean(list);
-                    return userCard;
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return (UserCard) adapter.getUserCardData(new UserCard());
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return null;
     }
@@ -121,36 +62,10 @@
      * @return
      */
     public String getCardNumber() {
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                mfc.connect();
-                //鑾峰彇褰撳墠鍗″彿
-                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(0);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
-//                        hex = HexUtil.spaceHex(hex);
-//                        hex = HexUtil.HighLowHex(hex);
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                        return hex.toUpperCase();
-                    }
-                }
-
-            } catch (IOException e) {
-                return BaseCommon.CARD_TYPE_ERROR1;
-            } finally {
-                try {
-                    mfc.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return adapter.getCardNumber();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return "";
     }
@@ -162,54 +77,10 @@
      * @return
      */
     public String getCradTypeAndCardNumber() {
-
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                mfc.connect();
-                StringBuilder strData = new StringBuilder();
-                //鑾峰彇褰撳墠鍗″彿
-                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(0);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
-                        strData.append(hex);
-                        strData.append(",");
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                    }
-                }
-                //鑾峰彇鍗$墖绫诲瀷
-                isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(1);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.byteToHex(data[0]);
-                        strData.append(hex);
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                        return strData.toString().toUpperCase();
-                    }
-                } else {
-                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
-                    return BaseCommon.CARD_TYPE_ERROR2;
-                }
-            } catch (IOException e) {
-                return BaseCommon.CARD_TYPE_ERROR1;
-            } finally {
-                try {
-                    mfc.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return adapter.getCradTypeAndCardNumber();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return "";
     }
@@ -219,189 +90,22 @@
      *
      * @param callback
      */
-    public void getAllData(final NFCCallMapback callback) {
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                for (int i = 0; i < count; i++) {
-                    List<byte[]> list = new ArrayList<>();
-                    //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                    boolean isOpen = mfc.authenticateSectorWithKeyA(i, defauleKey);
-                    if (!isOpen) {
-                        isOpen = mfc.authenticateSectorWithKeyA(i, companyKey);
-                    }
-                    if (isOpen) {
-                        //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                        int bCount = mfc.getBlockCountInSector(i);
-                        //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                        int bIndex = mfc.sectorToBlock(i);
-                        //String data1 = "";
-                        for (int j = 0; j < bCount; j++) {
-                            //璇诲彇鏁版嵁
-                            byte[] data = null;
-                            try {
-                                data = mfc.readBlock(bIndex);
-                                bIndex++;
-                                list.add(data);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                        }
-                        flag = true;
-                    }
-                    map.put(i + "", list);
-                }
-                if (flag) {
-                    callback.callBack(map);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+    public void getAllData(final BaseNfcReadHelper.NFCCallMapback callback) {
+        try {
+            adapter.getAllData(callback);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 
 
     public List<byte[]> getOnesectorData() {
-        MifareClassic mfc = null;
         try {
-            mfc = MifareClassic.get(tag);
+            return adapter.getOnesectorData();
         } catch (Exception e) {
             e.printStackTrace();
-        }
-        List<byte[]> list = new ArrayList<>();
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                    return list;
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
         }
         return null;
-    }
-
-    /**
-     * 鑾峰彇1鎵囧尯淇℃伅
-     *
-     * @param callback
-     */
-    public void getOneSectorData(NFCCallListback callback) {
-
-
-        MifareClassic mfc = null;
-        try {
-            mfc = MifareClassic.get(tag);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-                if (flag) {
-                    callback.callBack(list);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }
     }
 
 
@@ -412,111 +116,13 @@
      * @param b        鍧�
      * @param callback
      */
-    public void getData(final int a, final int b, final NFCCallByteback callback) {
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                Map<String, List<String>> map = new HashMap<>();
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        mfc.connect();
-                        int count = mfc.getSectorCount();
-                        if (a < 0 || a > count - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-                        int bCount = mfc.getBlockCountInSector(a);
-                        if (b < 0 || b > bCount - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-
-                        int type = mfc.getType();//鑾峰彇TAG鐨勭被鍨�
-                        String typeS = "";
-                        switch (type) {
-                            case MifareClassic.TYPE_CLASSIC:
-                                typeS = "TYPE_CLASSIC";
-                                break;
-                            case MifareClassic.TYPE_PLUS:
-                                typeS = "TYPE_PLUS";
-                                break;
-                            case MifareClassic.TYPE_PRO:
-                                typeS = "TYPE_PRO";
-                                break;
-                            case MifareClassic.TYPE_UNKNOWN:
-                                typeS = "TYPE_UNKNOWN";
-                                break;
-                        }
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            byte[] data = mfc.readBlock(bIndex + b);
-                            callback.callBack(data);
-                        } else {
-                            callback.error(CardCommon.ERROR);
-                        }
-                    } catch (IOException e) {
-                        callback.error(CardCommon.ERROR_MOVE);
-                        e.printStackTrace();
-                    } catch (Exception e) {
-                        callback.error(CardCommon.ERROR);
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            }
-        }).start();
+    public void getData(final int a, final int b, final BaseNfcReadHelper.NFCCallByteback callback) {
+        try {
+            adapter.getData(a, b, callback);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallMapback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(Map<String, List<byte[]>> data);
-
-
-        void error(int code);
-    }
-
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallListback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(List<byte[]> data);
-
-
-        void error(int code);
-    }
-
-
-    public interface NFCCallByteback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-
-        void callBack(byte[] data);
-
-        void error(int code);
-    }
 
 }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/BaseNFCHelper.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/QHBaseNFCHelper.java
similarity index 89%
rename from qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/BaseNFCHelper.java
rename to qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/QHBaseNFCHelper.java
index 4ae0936..cefc8e8 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/BaseNFCHelper.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/tools/QHBaseNFCHelper.java
@@ -4,6 +4,7 @@
 import android.util.Base64;
 
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.BaseNFCHelper;
 
 import java.nio.charset.StandardCharsets;
 import java.security.InvalidKeyException;
@@ -21,20 +22,7 @@
  * Date: 2023-11-09 11:52
  * Description:
  */
-public class BaseNFCHelper {
-    /**
-     * 榛樿瀵嗙爜锛堢櫧鍗″瘑鐮侊級ffffffffffff
-     */
-    public byte[] defauleKey;
-
-    /**
-     * 鍏徃瀵嗙爜
-     */
-    public byte[] companyKey;
-    //瀵嗙爜a鍖�
-    String companyKeyA;
-    //瀵嗙爜B鍖�
-    String companyKeyB;
+public class QHBaseNFCHelper extends BaseNFCHelper {
 
 
     static {
@@ -43,7 +31,7 @@
 
     public native String getSafeKey(Object object);
 
-    public BaseNFCHelper(Activity activity) {
+    public QHBaseNFCHelper(Activity activity) {
         // 瑙e瘑瀛楃涓�
         try {
             //鍒濆瀵嗙爜
@@ -56,6 +44,7 @@
             byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
             String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
             defauleKey = HexUtil.hexToByteArray(decryptedText);
+            listKeyA.add(defauleKey);
             //鍒濆瀵嗙爜
 //             byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
             //010203:qeg4DUWf0ni9JfRWtD2krA==
@@ -64,7 +53,7 @@
             //decryptedBytes2 瀵瑰簲010203040506
             companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
             companyKey = HexUtil.hexToByteArray(companyKeyA);
-
+            listKeyA.add(companyKey);
             //淇敼鍚庣殑瀵嗙爜
             byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
             byte[] decryptedBytes3 = cipher.doFinal(encryptedBytes3);
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java
index b599f45..6cc661d 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/view/AdminCardDialog.java
@@ -2,28 +2,20 @@
 
 import static android.view.Gravity.CENTER;
 
-import android.app.Activity;
 import android.app.Dialog;
 import android.content.Intent;
 import android.text.TextUtils;
-import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.widget.RadioGroup;
 import android.widget.TextView;
 
-import com.dayu.baselibrary.dao.BaseDaoSingleton;
-import com.dayu.baselibrary.dao.LibraryDao;
-import com.dayu.baselibrary.dbbean.LibraryBean;
 import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.baselibrary.view.ConfirmDialog;
 import com.dayu.baselibrary.view.EdtDialog;
-import com.dayu.baselibrary.view.LibraryDialog;
 import com.dayu.qihealonelibrary.R;
-import com.dayu.qihealonelibrary.activity.BaseActivity;
-import com.dayu.qihealonelibrary.activity.ManagerListActivity;
-import com.dayu.qihealonelibrary.activity.ManagerReadActivity;
-import com.dayu.qihealonelibrary.activity.NFCWreatActivity;
+import com.dayu.qihealonelibrary.activity.ManagerListActivityQHAlone;
+import com.dayu.qihealonelibrary.activity.NFCWreatActivityQHAlone;
+import com.dayu.qihealonelibrary.activity.QHAloneBaseActivity;
 import com.dayu.qihealonelibrary.card.ManageCard;
 
 /**
@@ -34,14 +26,14 @@
  */
 public class AdminCardDialog extends Dialog {
 
-    BaseActivity mContext;
+    QHAloneBaseActivity mContext;
     boolean ischose = false;
 
     int type;
 
     EdtDialog edtDialog;
 
-    public AdminCardDialog(BaseActivity context) {
+    public AdminCardDialog(QHAloneBaseActivity context) {
         super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog);
         mContext = context;
         initView();
@@ -66,7 +58,7 @@
         okBtn.setOnClickListener(v -> {
             if (ischose) {
                 if (type == 0) {
-                    Intent intent = new Intent(mContext, ManagerListActivity.class);
+                    Intent intent = new Intent(mContext, ManagerListActivityQHAlone.class);
 //                    intent.putExtra("cardNumber", cardNumber);
                     mContext.startActivity(intent);
                     AdminCardDialog.this.dismiss();
@@ -75,7 +67,7 @@
                         @Override
                         public void onOk(String data) {
                             if (!TextUtils.isEmpty(data) && data.length() == 8) {
-                                Intent intent = new Intent(mContext, NFCWreatActivity.class);
+                                Intent intent = new Intent(mContext, NFCWreatActivityQHAlone.class);
                                 ManageCard manageCard = new ManageCard();
                                 manageCard.setUserCard(data);
                                 intent.putExtra("manageCard", manageCard);
diff --git a/qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml b/qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml
index 20e42a0..65d9510 100644
--- a/qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml
+++ b/qihealonelibrary/src/main/res/layout/qihe_item_replacements.xml
@@ -7,7 +7,7 @@
 
         <variable
             name="activity"
-            type="com.dayu.qihealonelibrary.activity.ManagerListActivity" />
+            type="com.dayu.qihealonelibrary.activity.ManagerListActivityQHAlone" />
 
     </data>
 
diff --git a/qiheonlinelibrary/src/main/AndroidManifest.xml b/qiheonlinelibrary/src/main/AndroidManifest.xml
index 3ccd1f6..31d85f6 100644
--- a/qiheonlinelibrary/src/main/AndroidManifest.xml
+++ b/qiheonlinelibrary/src/main/AndroidManifest.xml
@@ -9,18 +9,18 @@
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true">
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.AdminSetupActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.AdminSetupActivityQHOline"
             android:exported="false">
 
         </activity>
 
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.HomeActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.HomeActivityQHOline"
             android:exported="false">
 
         </activity>
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.NewCardActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.NewCardActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -29,15 +29,15 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.SysActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.SysActivityQHOline"
             android:exported="false">
 
         </activity>
 
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.PassWordActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.MyActivity" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.PassWordActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.MyActivityQHOline" />
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.RechargeActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.RechargeActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -57,7 +57,7 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.NFCWreatActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.NFCWreatActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -65,19 +65,19 @@
                 <data android:mimeType="text/plain" />
             </intent-filter>
         </activity>
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.RechargeListActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.NewCardListActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.ParameterActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.PowerActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.DomainActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.ElectricPriceActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.IdentifyingActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.RechargeDetailActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.PasswordCardActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.RegionActivity" />
-        <activity android:name="com.dayu.qiheonlinelibrary.activity.ManagerListActivity" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.RechargeListActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.NewCardListActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.ParameterActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.PowerActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.DomainActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.ElectricPriceActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.IdentifyingActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.RechargeDetailActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.PasswordCardActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.RegionActivityQHOline" />
+        <activity android:name="com.dayu.qiheonlinelibrary.activity.ManagerListActivityQHOline" />
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.ManagerWriteActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.ManagerWriteActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -87,7 +87,7 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.ManagerReadActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.ManagerReadActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
@@ -97,13 +97,13 @@
             </intent-filter>
         </activity>
         <activity
-            android:name=".activity.UserSearchActivity"
+            android:name=".activity.UserSearchActivityQHOline"
             android:launchMode="singleTop" />
         <activity
-            android:name=".activity.CardSearchActivity"
+            android:name=".activity.CardSearchActivityQHOline"
             android:launchMode="singleTop" />
         <activity
-            android:name="com.dayu.qiheonlinelibrary.activity.InitialuzeActivity"
+            android:name="com.dayu.qiheonlinelibrary.activity.InitialuzeActivityQHOline"
             android:exported="false"
             android:launchMode="singleTop">
             <intent-filter>
diff --git a/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp b/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp
index 2966de0..5ffd58a 100644
--- a/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp
+++ b/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp
@@ -41,7 +41,7 @@
 
 extern "C"
 JNIEXPORT jstring
-Java_com_dayu_qiheonlinelibrary_tools_BaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) {
+Java_com_dayu_qiheonlinelibrary_tools_QHBaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance, jobject contextObject) {
     jmethodID getPackageManagerId = (env)->GetMethodID(contextClass, "getPackageManager","()Landroid/content/pm/PackageManager;");
     jmethodID getPackageNameId = (env)->GetMethodID(contextClass, "getPackageName","()Ljava/lang/String;");
     jmethodID signToStringId = (env)->GetMethodID(signatureClass, "toCharsString","()Ljava/lang/String;");
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
index ba0ec93..f2ecd09 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
@@ -7,6 +7,7 @@
 
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.utils.ToastUtil;
+import com.dayu.qiheonlinelibrary.activity.HomeActivityQHOline;
 import com.dayu.qiheonlinelibrary.bean.LoginResult;
 import com.dayu.qiheonlinelibrary.bean.PricePlanResult;
 import com.dayu.qiheonlinelibrary.net.ApiManager;
@@ -14,7 +15,6 @@
 import com.dayu.qiheonlinelibrary.net.RSAUtile;
 import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
 
-import java.security.AllPermission;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -128,7 +128,7 @@
                                 arerNumber = t.getData().getOtherData().getAdcdList().get(0).substring(4);
                             }
                             adminId = t.getData().getUserId();
-                            context.startActivity(new Intent(context, com.dayu.qiheonlinelibrary.activity.HomeActivity.class));
+                            context.startActivity(new Intent(context, HomeActivityQHOline.class));
                             ((Activity) context).finish();
                         } else {
                             TipUtil.show((Activity) context, "鐧诲綍澶辫触锛岃閲嶈瘯");
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivityQHOline.java
similarity index 90%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivityQHOline.java
index 89b459b..90aefa9 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/AdminSetupActivityQHOline.java
@@ -21,11 +21,11 @@
  * Date: 2023-11-10 19:52
  * Description: 绠$悊鍛樹俊鎭缃�
  */
-public class AdminSetupActivity extends BaseActivity {
+public class AdminSetupActivityQHOline extends QHOlineBaseActivity {
 
     ActivityAdminSetupQhlBinding adminBinding;
 
-    public static AdminSetupActivity adminSetupActivity;
+    public static AdminSetupActivityQHOline adminSetupActivity;
     AdminDataBean adminData = new AdminDataBean();
     ElectricPriceBean electricPriceBean;
 
@@ -60,21 +60,21 @@
                         baseDao.adminDao().insert(adminData);
                         electricPriceBean.setPrice(Float.parseFloat(strElectricPrice));
                         baseDao.electricPriceDao().insert(electricPriceBean);
-                        TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
+                        TipUtil.show(AdminSetupActivityQHOline.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
                             @Override
                             public void onCancle() {
-                                AdminSetupActivity.this.finish();
+                                AdminSetupActivityQHOline.this.finish();
                             }
                         });
                     } else {
-                        TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勫尯鍩熷彿涓嶈兘瓒呰繃65535");
+                        TipUtil.show(AdminSetupActivityQHOline.this, "杈撳叆鐨勫尯鍩熷彿涓嶈兘瓒呰繃65535");
                     }
 
                 } else {
-                    TipUtil.show(AdminSetupActivity.this, "鍗曚环涓嶈兘涓�0");
+                    TipUtil.show(AdminSetupActivityQHOline.this, "鍗曚环涓嶈兘涓�0");
                 }
             } else {
-                TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                TipUtil.show(AdminSetupActivityQHOline.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
             }
         });
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java
deleted file mode 100644
index 7b1a2d4..0000000
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.dayu.qiheonlinelibrary.activity;
-
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.Signature;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-
-import com.dayu.baselibrary.view.TitleBar;
-import com.dayu.qiheonlinelibrary.R;
-import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton;
-import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase;
-
-
-/**
- * Created by zuoxiao on 2018/12/20.
- */
-
-public class BaseActivity extends com.dayu.baselibrary.activity.BaseActivity {
-    private final String TAG = "BaseActivity";
-
-    public TitleBar titleBar = null;
-    //z涓荤嚎绋嬫煡璇�
-    public QHOnLineAppDatabase baseDao;
-    //寮傛绾跨▼鏌ヨ
-    public QHOnLineAppDatabase asynchBaseDao;
-    public final String SIGN = "308202b8308201a0020101300d06092a864886f70d01010b05003022310f300d06035504030c06e5a4a7e7a6b9310f300d06035504070c06e5a4a9e6b4a5301e170d3233313132303035333131325a170d3438313131333035333131325a3022310f300d06035504030c06e5a4a7e7a6b9310f300d06035504070c06e5a4a9e6b4a530820122300d06092a864886f70d01010105000382010f003082010a0282010100a0924f3d618e4a622def691e16e54ce5bdfd035bd73e7cb947d2bf3bd0c00afa26e52963e0299fc06d76d153be696c5285d630577e1dcb2b740a72b6d904482217de308fb91c8435441ed05e844ced1e5c3446d82cb8f38751049df26a42adcfc33f1f12c2ce03f676e5d148aad800ace89670b87835e2c02a8570a0b6740d9c0669d4cb3c597d0b2dd49fc0904e885773b6d3a87d9f1e73eb526e0d1a9e9e3c48d986938286cd824151b5a6214faf89d3e699524511b23c86d3b110a7f0bb56a6d2436f69816538a62a38cb1fee6eb685d267cc200df8af51b936bd280beaa2023f75678d77a11ac6de734b30af63d394c8b63bccf2115a47ea15c9212c740d0203010001300d06092a864886f70d01010b05000382010100307cafa9b14be91ba6424cfcc6aed75b069a1c4d6eb646eab0de93f372f236f5f0a6097499df99391075d6ced18d419a2b15adb041890e2b56a3bfbd6be40efee99c5c713ba8ea1d45da09b67916106116e96eb735271c4d53e0739f753145cbc42e149ad3d9507d422ec1c6f1a7f792a4542f9a64f0de3d4f4af69f0fb3390ef3577dcf8844cf744426d173b0934d879148062c5ca64022dc99af370dbfeaf2b5d4a279b20c54a361bca12c25bf185c2885519bbbc36e46ddb083080f0cc5b1f2eafe964ebce5071b0ae7d92a34a9193861b996d2c0299b1993f41063a27038199365a6e3cb27a02ffa9facdc48a63713eb5fbf90e9fd73056aba16b28e5fee";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        baseDao = QHOnlineBaseDaoSingleton.getInstance(this);
-        asynchBaseDao = QHOnlineBaseDaoSingleton.getAsynchInstance(this);
-        Log.i(TAG, SIGN);
-        if (!isMyApp()) {
-            Log.i(TAG, "isMyApp");
-            this.finish();
-        }
-    }
-
-
-    @Override
-    public void setContentView(View layoutResID) {
-        super.setContentView(layoutResID);
-        try {
-            View view = findViewById(R.id.titleBar);
-
-            if (view != null && view instanceof TitleBar) {
-                titleBar = (TitleBar) view;
-                titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        finish();
-                    }
-                });
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public boolean isMyApp() {
-        String signStr = getSign();
-        return SIGN.equals(signStr);
-    }
-
-    public String getSign() {
-
-        try {
-            PackageInfo packageInfo = this.getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_SIGNATURES);
-            Signature[] signatures = packageInfo.signatures;
-            StringBuilder builder = new StringBuilder();
-            for (Signature signature : signatures) {
-                builder.append(signature.toCharsString());
-            }
-            return builder.toString();
-        } catch (PackageManager.NameNotFoundException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-}
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseNfcActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseNfcActivity.java
deleted file mode 100644
index 1b49e94..0000000
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseNfcActivity.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.dayu.qiheonlinelibrary.activity;
-import android.app.Activity;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.nfc.NfcAdapter;
-
-import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.qiheonlinelibrary.card.UserCard;
-
-
-/**
- * Author:Createdby zuo on 2018/12/2.
- * Email:584182977@qq.com
- * Description:
- * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
- * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
- * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
- * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
- */
-public class BaseNfcActivity extends BaseActivity {
-
-
-    protected NfcAdapter mNfcAdapter;
-    private PendingIntent mPendingIntent;
-
-    volatile UserCard userCard;
-
-    /**
-     * onCreat->onStart->onResume->onPause->onStop->onDestroy
-     * 鍚姩Activity锛岀晫闈㈠彲瑙佹椂.
-     */
-
-
-
-    public static int READER_FLAGS =
-            NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        //姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
-        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
-        Intent intent = new Intent(this, getClass());
-
-        //涓�鏃︽埅鑾種FC娑堟伅锛屽氨浼氶�氳繃PendingIntent璋冪敤绐楀彛
-        mPendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
-
-//        mLoyaltyCardReader = new LoyaltyCardReader(this);
-//        if (mNfcAdapter != null) {
-//            mNfcAdapter.enableReaderMode(this, mLoyaltyCardReader, READER_FLAGS, null);
-//        }
-
-    }
-
-    /**
-     * 鑾峰緱鐒︾偣锛屾寜閽彲浠ョ偣鍑�
-     */
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (!ifNFCUse(this)) {
-        }
-        //璁剧疆澶勭悊浼樹簬鎵�鏈夊叾浠朜FC鐨勫鐞�
-        if (mNfcAdapter != null)
-            mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
-    }
-
-    /**
-     * 鏆傚仠Activity锛岀晫闈㈣幏鍙栫劍鐐癸紝鎸夐挳鍙互鐐瑰嚮
-     */
-    @Override
-    public void onPause() {
-        super.onPause();
-        //鎭㈠榛樿鐘舵��
-        if (mNfcAdapter != null)
-            mNfcAdapter.disableForegroundDispatch(this);
-//            mNfcAdapter.disableReaderMode(this);
-
-    }
-
-
-
-    /**
-     * 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
-     *
-     * @return
-     */
-    protected Boolean ifNFCUse(Activity context) {
-        if (mNfcAdapter == null) {
-            TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�", new TipUtil.TipListener() {
-                @Override
-                public void onCancle() {
-                    BaseNfcActivity.this.finish();
-                }
-            });
-            return false;
-        }
-        if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) {
-            TipUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
-            return false;
-        }
-        return true;
-    }
-
-
-}
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivityQHOline.java
similarity index 89%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivityQHOline.java
index c4fbd08..ce69751 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivityQHOline.java
@@ -36,7 +36,7 @@
  * Time: 13:37
  * 澶囨敞锛氶�夋嫨鐢ㄦ埛鐨勫崱鐗�
  */
-public class CardSearchActivity extends BaseActivity {
+public class CardSearchActivityQHOline extends QHOlineBaseActivity {
     ActivityCardSearchQhlBinding binding;
     RefreshLayout myRefreshLayout;
     CardAdapter adapter;
@@ -89,7 +89,7 @@
                     title = "琛ュ崱";
                 }
                 String data = "鍗″彿锛�" + records.get(position).getIccardNum();
-                confirmDialog = new ConfirmDialog(CardSearchActivity.this, title, data, v -> {
+                confirmDialog = new ConfirmDialog(CardSearchActivityQHOline.this, title, data, v -> {
 
                     String iccardInfoId = mRecord.getIccardInfoId();
                     if (type == BaseCommon.LOSS_CARD) {
@@ -162,7 +162,7 @@
                     }
 
                 } else {
-                    TipUtil.show(CardSearchActivity.this, t.getMsg());
+                    TipUtil.show(CardSearchActivityQHOline.this, t.getMsg());
                 }
             }
         });
@@ -182,11 +182,11 @@
                 if (t.isSuccess()) {
                     if (t.getData() != null) {
                         if (type == BaseCommon.LOSS_CARD) {
-                            TipUtil.show(CardSearchActivity.this, "鎸傚け鎴愬姛", () -> {
-                                CardSearchActivity.this.finish();
-                                if (UserSearchActivity.userSearchActivity != null) {
-                                    UserSearchActivity.userSearchActivity.finish();
-                                    UserSearchActivity.userSearchActivity = null;
+                            TipUtil.show(CardSearchActivityQHOline.this, "鎸傚け鎴愬姛", () -> {
+                                CardSearchActivityQHOline.this.finish();
+                                if (UserSearchActivityQHOline.userSearchActivity != null) {
+                                    UserSearchActivityQHOline.userSearchActivity.finish();
+                                    UserSearchActivityQHOline.userSearchActivity = null;
                                 }
                             });
                         } else if (type == BaseCommon.REPLACE_NO_CARD) {
@@ -214,8 +214,8 @@
             @Override
             public void onNext(BaseResponse<UserListResult> t) {
                 if (t.isSuccess()) {
-                    TipUtil.show(CardSearchActivity.this, "瑙i櫎鎸傚け鎴愬姛", () -> {
-                        CardSearchActivity.this.finish();
+                    TipUtil.show(CardSearchActivityQHOline.this, "瑙i櫎鎸傚け鎴愬姛", () -> {
+                        CardSearchActivityQHOline.this.finish();
                     });
                 } else {
                     ToastUtil.show(t.getMsg());
@@ -231,12 +231,12 @@
      */
     private void startNFCActivit(String iccardInfoId) {
         //鐩存帴琛ュ崱鐨勬柟寮�
-        Intent intent = new Intent(CardSearchActivity.this, NFCWreatActivity.class);
+        Intent intent = new Intent(CardSearchActivityQHOline.this, NFCWreatActivityQHOline.class);
         intent.putExtra("iccardInfoId", iccardInfoId);
         intent.putExtra("replaceType", type);
         intent.putExtra("userCardBean", userCardBean);
         startActivity(intent);
-        CardSearchActivity.this.finish();
+        CardSearchActivityQHOline.this.finish();
     }
 
     /**
@@ -246,11 +246,11 @@
      * @param oldCardNumber
      */
     private void startManagerActivity(String iccardInfoId, String oldCardNumber) {
-        Intent intent = new Intent(CardSearchActivity.this, ManagerWriteActivity.class);
+        Intent intent = new Intent(CardSearchActivityQHOline.this, ManagerWriteActivityQHOline.class);
         intent.putExtra("iccardInfoId", iccardInfoId);
         intent.putExtra("replaceType", type);
         intent.putExtra("oldCardNumber", oldCardNumber);
         startActivity(intent);
-        CardSearchActivity.this.finish();
+        CardSearchActivityQHOline.this.finish();
     }
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivityQHOline.java
similarity index 97%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivityQHOline.java
index f87d5a5..0454f48 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/DomainActivityQHOline.java
@@ -16,7 +16,7 @@
  * Time: 10:19
  * 澶囨敞锛� 璁剧疆鍗″煙鍚嶅拰ip
  */
-public class DomainActivity extends BaseActivity {
+public class DomainActivityQHOline extends QHOlineBaseActivity {
     ActivityDomainQhlBinding binding;
     DomainBean domainBean;
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivityQHOline.java
similarity index 97%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivityQHOline.java
index cb4a22c..8e6edf1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ElectricPriceActivityQHOline.java
@@ -18,7 +18,7 @@
  * Date: 2023-11-10 10:18
  * Description: 鐢甸噺鍗曚环璁剧疆
  */
-public class ElectricPriceActivity extends BaseActivity {
+public class ElectricPriceActivityQHOline extends QHOlineBaseActivity {
 
     ActivityElectricPriceQhlBinding electricPriceBinding;
     ElectricPriceBean electricPriceBean;
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivityQHOline.java
similarity index 71%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivityQHOline.java
index da7b797..c3c320f 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivityQHOline.java
@@ -5,23 +5,13 @@
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
-import android.view.View;
 import android.widget.Toast;
 
 import com.dayu.baselibrary.utils.BaseCommon;
-import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.view.PassWordDialog;
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
-import com.dayu.qiheonlinelibrary.bean.PricePlanResult;
 import com.dayu.qiheonlinelibrary.databinding.ActivityHomeQhlBinding;
-import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
-import com.dayu.qiheonlinelibrary.net.ApiManager;
-import com.dayu.qiheonlinelibrary.net.BaseResponse;
-import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
 import com.dayu.qiheonlinelibrary.view.ChooseReplacementDialog;
-
-import java.util.HashMap;
-import java.util.Map;
 
 
 /**
@@ -30,9 +20,9 @@
  * Date: 2023-11-6 19:52
  * Description: 涓荤晫闈�
  */
-public class HomeActivity extends BaseActivity {
+public class HomeActivityQHOline extends QHOlineBaseActivity {
 
-    public static HomeActivity homeActivity;
+    public static HomeActivityQHOline homeActivity;
     ActivityHomeQhlBinding homeBinding;
     ChooseReplacementDialog replacementDialog;
 
@@ -55,27 +45,27 @@
     }
 
     private void initView() {
-        homeBinding.homeNewCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, NewCardActivity.class)));
-        homeBinding.homeRecharge.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, RechargeActivity.class)));
-        homeBinding.homeRedCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class)));
+        homeBinding.homeNewCard.setOnClickListener(v -> startActivity(new Intent(HomeActivityQHOline.this, NewCardActivityQHOline.class)));
+        homeBinding.homeRecharge.setOnClickListener(v -> startActivity(new Intent(HomeActivityQHOline.this, RechargeActivityQHOline.class)));
+        homeBinding.homeRedCard.setOnClickListener(v -> startActivity(new Intent(HomeActivityQHOline.this, ReadCardAcitivy.class)));
         //绠$悊绯荤粺鐣岄潰
         homeBinding.homeAdmin.setOnClickListener(v -> {
-            PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.class));
+            PassWordDialog passWordDialog = new PassWordDialog(HomeActivityQHOline.this, new Intent(HomeActivityQHOline.this, SysActivityQHOline.class));
             passWordDialog.show();
         });
         //鍙傛暟璁剧疆
         homeBinding.homeParameter.setOnClickListener(v -> {
-            PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class));
+            PassWordDialog passWordDialog = new PassWordDialog(HomeActivityQHOline.this, new Intent(HomeActivityQHOline.this, ParameterActivityQHOline.class));
             passWordDialog.show();
         });
-        homeBinding.homeMy.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, MyActivity.class)));
+        homeBinding.homeMy.setOnClickListener(v -> startActivity(new Intent(HomeActivityQHOline.this, MyActivityQHOline.class)));
         homeBinding.homeLoss.setOnClickListener(v -> {
-            Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class);
+            Intent intent = new Intent(HomeActivityQHOline.this, UserSearchActivityQHOline.class);
             intent.putExtra("type", BaseCommon.LOSS_CARD);
             startActivity(intent);
         });
         homeBinding.homeReportLoss.setOnClickListener(v -> {
-            Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class);
+            Intent intent = new Intent(HomeActivityQHOline.this, UserSearchActivityQHOline.class);
             intent.putExtra("type", BaseCommon.REPORT_LOSS_CARD);
             startActivity(intent);
         });
@@ -84,11 +74,11 @@
             replacementDialog = new ChooseReplacementDialog(this, type -> {
                 if (type == BaseCommon.REPLACE_WRITE) {
                     //琛ュ崱鍐欏崱
-                    Intent intent = new Intent(HomeActivity.this, ManagerReadActivity.class);
+                    Intent intent = new Intent(HomeActivityQHOline.this, ManagerReadActivityQHOline.class);
                     intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
                     startActivity(intent);
                 } else {
-                    Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class);
+                    Intent intent = new Intent(HomeActivityQHOline.this, UserSearchActivityQHOline.class);
                     intent.putExtra("type", type);
                     startActivity(intent);
                 }
@@ -112,10 +102,10 @@
     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();
+                Toast.makeText(HomeActivityQHOline.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show();
                 mExitTime = System.currentTimeMillis();
             } else {
-                HomeActivity.this.finish();
+                HomeActivityQHOline.this.finish();
             }
             return true;
         }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivityQHOline.java
similarity index 96%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivityQHOline.java
index fda26c7..82c1806 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivityQHOline.java
@@ -28,7 +28,7 @@
  * Time: 10:21
  * 澶囨敞锛氬崱鏍囪瘑璁剧疆
  */
-public class IdentifyingActivity extends BaseActivity {
+public class IdentifyingActivityQHOline extends QHOlineBaseActivity {
 
     ActivityIdentyfyingQhlBinding binding;
 
@@ -49,7 +49,7 @@
         binding.chooseCardType.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
+                ChooseView.getIntence(IdentifyingActivityQHOline.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
                     @Override
                     public void onOptionsSelect(int options1) {
                         chooseData(nianfen[options1]);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivityQHOline.java
similarity index 82%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivityQHOline.java
index db742a7..0242349 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/InitialuzeActivityQHOline.java
@@ -9,7 +9,6 @@
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.qiheonlinelibrary.databinding.ActivityInitQhlBinding;
 import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper;
-import com.dayu.qiheonlinelibrary.view.ProgressDialog;
 
 /**
  * author: zuo
@@ -17,7 +16,7 @@
  * Time: 15:59
  * 澶囨敞锛�
  */
-public class InitialuzeActivity extends BaseNfcActivity {
+public class InitialuzeActivityQHOline extends QHOlineBaseNfcActivity {
 
     ActivityInitQhlBinding binding;
     Intent intent;
@@ -31,17 +30,18 @@
     }
 
 
+
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         binding.avi.setVisibility(View.VISIBLE);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             if (NFCWriteHelper.getInstence(intent, this).initCard()) {
-                TipUtil.show(this, "鏍煎紡鍖栨垚鍔燂紒", () -> InitialuzeActivity.this.finish());
+                TipUtil.show(this, "鏍煎紡鍖栨垚鍔燂紒", () -> InitialuzeActivityQHOline.this.finish());
                 binding.avi.hide();
             }
         }
-        super.onNewIntent(intent);
     }
 
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivityQHOline.java
similarity index 94%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivityQHOline.java
index fed7242..e33fdb0 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerListActivityQHOline.java
@@ -35,7 +35,7 @@
  * Time: 11:20
  * 澶囨敞锛氱鐞嗗崱閫夋嫨鏈湴鐢ㄦ埛鐣岄潰
  */
-public class ManagerListActivity extends BaseActivity {
+public class ManagerListActivityQHOline extends QHOlineBaseActivity {
 
     ActivityManagerListQhlBinding binding;
     List<UserCardBean> userCardBeanList = new ArrayList<>();
@@ -66,7 +66,7 @@
         hex = HexUtil.spaceHex(hex);
         hex = HexUtil.HighLowHex(hex);
         manageCard.setUserCard(hex);
-        Intent intent = new Intent(ManagerListActivity.this, NFCWreatActivity.class);
+        Intent intent = new Intent(ManagerListActivityQHOline.this, NFCWreatActivityQHOline.class);
         intent.putExtra("manageCard", manageCard);
 //        intent.putExtra("cardNumber", cardNumber);
         intent.putExtra("userCardBean_manager", userCardBean);
@@ -126,7 +126,7 @@
 
     private void setRightButton() {
         titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, v -> {
-            edtDialog = new EdtDialog(ManagerListActivity.this, "鍙緭鍏ュ鍚嶃�佽韩浠借瘉鍙枫�佹墜鏈哄彿鎼滅储", new EdtDialog.DialogBack() {
+            edtDialog = new EdtDialog(ManagerListActivityQHOline.this, "鍙緭鍏ュ鍚嶃�佽韩浠借瘉鍙枫�佹墜鏈哄彿鎼滅储", new EdtDialog.DialogBack() {
                 @Override
                 public void onOk(String data) {
                     List<UserCardBean> beans = baseDao.userCardDao().findByData(data);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivityQHOline.java
similarity index 87%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivityQHOline.java
index 2a47e87..ebb67a9 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivityQHOline.java
@@ -30,7 +30,7 @@
  * Time: 20:10
  * 澶囨敞锛� 璇诲彇绠$悊鍗★紝浠庢帶鍒跺櫒璇诲崱鍚庡湪姝ょ晫闈㈣鍗�
  */
-public class ManagerReadActivity extends BaseNfcActivity {
+public class ManagerReadActivityQHOline extends QHOlineBaseNfcActivity {
 
     ActivityManagerReadQhlBinding binding;
     Intent intent;
@@ -55,19 +55,20 @@
     private void initView() {
         binding.managerNext.setOnClickListener(v -> {
             if (isReadSuccess) {
-                Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class);
+                Intent intent = new Intent(ManagerReadActivityQHOline.this, NFCWreatActivityQHOline.class);
                 intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId());
                 intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
                 startActivity(intent);
-                ManagerReadActivity.this.finish();
+                ManagerReadActivityQHOline.this.finish();
             } else {
-                TipUtil.show(ManagerReadActivity.this, "璇峰埛绠$悊鍗�");
+                TipUtil.show(ManagerReadActivityQHOline.this, "璇峰埛绠$悊鍗�");
             }
         });
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
@@ -80,7 +81,7 @@
             }
 
             if (CardCommon.MANAGE_CRAD.equalsIgnoreCase(cardType)) {
-                managerToUserCard = NfcReadHelper.getInstence(intent, this).getManagerToUserCardData();
+                managerToUserCard = NfcReadHelper.getInstence(intent, this).getManagerToUserCardData(new ManagerToUserCard());
                 if (managerToUserCard != null) {
                     if (QHOnLineApplication.getInstance().arerNumber.equalsIgnoreCase(String.valueOf(managerToUserCard.getArerNumber()))) {
                         String oldCardNumber = managerToUserCard.getOldCardNumber();
@@ -100,7 +101,6 @@
                 TipUtil.show(this, "褰撳墠鍗′笉鏄鐞嗗崱锛侊紒锛�");
             }
         }
-        super.onNewIntent(intent);
     }
 
     /**
@@ -126,16 +126,16 @@
                         userCardBean.setAddressCode(cardInfoResult.getAdcd());
                         userCardBean.setAddressName(cardInfoResult.getAdcdName());
                         isReadSuccess = true;
-                        TipUtil.show(ManagerReadActivity.this, "璇诲崱鎴愬姛锛屼笅涓�姝ュ皢鍐欏崱锛�", () -> {
-                            Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class);
+                        TipUtil.show(ManagerReadActivityQHOline.this, "璇诲崱鎴愬姛锛屼笅涓�姝ュ皢鍐欏崱锛�", () -> {
+                            Intent intent = new Intent(ManagerReadActivityQHOline.this, NFCWreatActivityQHOline.class);
                             intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId());
                             intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
                             intent.putExtra("userCardBean", userCardBean);
                             startActivity(intent);
-                            ManagerReadActivity.this.finish();
+                            ManagerReadActivityQHOline.this.finish();
                         });
                     } else {
-                        TipUtil.show(ManagerReadActivity.this, "鏈煡璇㈠埌璇ュ崱淇℃伅锛岃妫�鏌ャ��");
+                        TipUtil.show(ManagerReadActivityQHOline.this, "鏈煡璇㈠埌璇ュ崱淇℃伅锛岃妫�鏌ャ��");
                     }
                 }
             }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivityQHOline.java
similarity index 81%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivityQHOline.java
index ba6c3fa..8895779 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivityQHOline.java
@@ -3,7 +3,6 @@
 import android.content.Intent;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
-import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -14,12 +13,9 @@
 import com.dayu.baselibrary.view.ConfirmDialog;
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
 import com.dayu.qiheonlinelibrary.card.ManageCard;
-import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
-import com.dayu.qiheonlinelibrary.databinding.ActivityManagerReadQhlBinding;
 import com.dayu.qiheonlinelibrary.databinding.ActivityManagerWriteQhlBinding;
 import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper;
 import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
-import com.dayu.qiheonlinelibrary.utils.CardCommon;
 import com.dayu.qiheonlinelibrary.view.ProgressDialog;
 
 
@@ -29,7 +25,7 @@
  * Time: 11:05
  * 澶囨敞锛氬埗浣滅鐞嗗崱
  */
-public class ManagerWriteActivity extends BaseNfcActivity {
+public class ManagerWriteActivityQHOline extends QHOlineBaseNfcActivity {
 
     ActivityManagerWriteQhlBinding binding;
     Intent intent;
@@ -57,17 +53,17 @@
             //宸插畬鎴愮浜屾
             if (number == 2) {
                 if (type == BaseCommon.REPLACE_NO_CARD) {
-                    Intent intent = new Intent(ManagerWriteActivity.this, NFCWreatActivity.class);
+                    Intent intent = new Intent(ManagerWriteActivityQHOline.this, NFCWreatActivityQHOline.class);
                     intent.putExtra("iccardInfoId", iccardInfoId);
                     intent.putExtra("replaceType", type);
                     startActivity(intent);
-                    ManagerWriteActivity.this.finish();
+                    ManagerWriteActivityQHOline.this.finish();
                 } else {
                     TipUtil.show(this, "璇峰湪鎺у埗鍣ㄧ鍒峰崱鍚庡湪棣栭〉鐐瑰嚮琛ュ崱鍐嶇偣鍑绘车鏈叧鍐欏崱鍚庣户缁ˉ鍗★紒", () -> {
-                        ManagerWriteActivity.this.finish();
-                        if (UserSearchActivity.userSearchActivity != null) {
-                            UserSearchActivity.userSearchActivity.finish();
-                            UserSearchActivity.userSearchActivity = null;
+                        ManagerWriteActivityQHOline.this.finish();
+                        if (UserSearchActivityQHOline.userSearchActivity != null) {
+                            UserSearchActivityQHOline.userSearchActivity.finish();
+                            UserSearchActivityQHOline.userSearchActivity = null;
                         }
 
                     });
@@ -79,14 +75,14 @@
         });
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             getCardNumber();
         }
-        super.onNewIntent(intent);
     }
 
 
@@ -136,9 +132,9 @@
     }
 
     private void back() {
-        confirmDialog = new ConfirmDialog(ManagerWriteActivity.this, "姝e湪琛ュ崱锛岀‘瀹氶��鍑哄悧锛�", v -> {
+        confirmDialog = new ConfirmDialog(ManagerWriteActivityQHOline.this, "姝e湪琛ュ崱锛岀‘瀹氶��鍑哄悧锛�", v -> {
             confirmDialog.dismiss();
-            ManagerWriteActivity.this.finish();
+            ManagerWriteActivityQHOline.this.finish();
         });
         confirmDialog.show();
     }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivityQHOline.java
similarity index 90%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivityQHOline.java
index b71122b..6620728 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivityQHOline.java
@@ -20,7 +20,6 @@
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
 import com.dayu.qiheonlinelibrary.databinding.ActivityMyQhlBinding;
 import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
-import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean;
 import com.dayu.qiheonlinelibrary.utils.ExcelUtil;
 
 import java.io.File;
@@ -34,7 +33,7 @@
  * Date: 2023-11-10 19:52
  * Description: 涓汉涓績
  */
-public class MyActivity extends BaseActivity {
+public class MyActivityQHOline extends QHOlineBaseActivity {
 
 
     private CustomDatePicker beginDatePicker;
@@ -61,7 +60,7 @@
         myBinding.myAdmin.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(MyActivityQHOline.this, new Intent(MyActivityQHOline.this, AdminSetupActivityQHOline.class));
                 passWordDialog.show();
 //                startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
             }
@@ -69,26 +68,26 @@
         myBinding.myWaterPriceLL.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
+                PassWordDialog passWordDialog = new PassWordDialog(MyActivityQHOline.this, new Intent(MyActivityQHOline.this, AdminSetupActivityQHOline.class));
                 passWordDialog.show();
             }
         });
         myBinding.myPsw.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, PassWordActivity.class));
+                startActivity(new Intent(MyActivityQHOline.this, PassWordActivityQHOline.class));
             }
         });
         myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, RechargeListActivity.class));
+                startActivity(new Intent(MyActivityQHOline.this, RechargeListActivityQHOline.class));
             }
         });
         myBinding.myNewCardListLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(MyActivity.this, NewCardListActivity.class));
+                startActivity(new Intent(MyActivityQHOline.this, NewCardListActivityQHOline.class));
             }
         });
         //寮�鍗¤褰�
@@ -117,13 +116,13 @@
         public boolean handleMessage(@NonNull Message msg) {
             switch (msg.what) {
                 case 1:
-                    TipUtil.show(MyActivity.this, "瀵煎嚭鎴愬姛!");
+                    TipUtil.show(MyActivityQHOline.this, "瀵煎嚭鎴愬姛!");
                     break;
                 case 3:
-                    TipUtil.show(MyActivity.this, "璁板綍涓虹┖!");
+                    TipUtil.show(MyActivityQHOline.this, "璁板綍涓虹┖!");
                     break;
                 default:
-                    TipUtil.show(MyActivity.this, "瀵煎嚭澶辫触!");
+                    TipUtil.show(MyActivityQHOline.this, "瀵煎嚭澶辫触!");
                     break;
             }
             stopAnim();
@@ -163,7 +162,7 @@
                         String[] title;
                         String fileName;
                         if (listData == null || listData.size() == 0) {
-                            TipUtil.show(MyActivity.this, "璁板綍涓虹┖");
+                            TipUtil.show(MyActivityQHOline.this, "璁板綍涓虹┖");
                             return;
                         }
                         if (isRechargeList) {
@@ -174,7 +173,7 @@
                             fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
                         }
                         ExcelUtil.initExcel(fileName, title);
-                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this);
+                        ExcelUtil.writeObjListToExcel(listData, fileName, MyActivityQHOline.this);
                         handler.sendEmptyMessage(1);
                     } catch (Exception e) {
                         handler.sendEmptyMessage(2);
@@ -250,7 +249,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(MyActivityQHOline.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     try {
                         endTime = endTime + (1000 * 60 * 60 * 24) - 1;
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivityQHOline.java
similarity index 90%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivityQHOline.java
index 47a4ea5..702a753 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivityQHOline.java
@@ -9,9 +9,7 @@
 import android.view.View;
 
 import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.AidlUtil;
 import com.dayu.baselibrary.utils.BaseCommon;
-import com.dayu.baselibrary.utils.DateUtil;
 import com.dayu.baselibrary.utils.DeviceUtils;
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.baselibrary.utils.TipUtil;
@@ -50,7 +48,6 @@
 import com.tencent.bugly.crashreport.CrashReport;
 
 import java.util.Calendar;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -60,7 +57,7 @@
  * Date: 2023-11-08 21:19
  * Description: nfc鍐欏崱鐣岄潰
  */
-public class NFCWreatActivity extends BaseNfcActivity {
+public class NFCWreatActivityQHOline extends QHOlineBaseNfcActivity {
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
@@ -102,7 +99,7 @@
     //鎵撳嵃
     QHOnLineApplication baseApp;
 
-    public static NFCWreatActivity nfcWreatActivity;
+    public static NFCWreatActivityQHOline nfcWreatActivity;
     /**
      * 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
      */
@@ -132,9 +129,9 @@
             binding = ActivityWriteTextQhlBinding.inflate(LayoutInflater.from(this));
             setContentView(binding.getRoot());
             nfcWreatActivity = this;
-            titleBack();
             baseApp = QHOnLineApplication.getInstance();
             getData();
+            titleBack();
         } catch (Exception e) {
             e.printStackTrace();
             CrashReport.postCatchedException(e);
@@ -262,9 +259,9 @@
                 binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
                 binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
             } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) {
-                TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+                TipUtil.show(NFCWreatActivityQHOline.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
             } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) {
-                TipUtil.show(NFCWreatActivity.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�");
+                TipUtil.show(NFCWreatActivityQHOline.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�");
             } else {
                 //璇诲崱鎴愬姛
                 Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
@@ -323,9 +320,9 @@
                 if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || domainCrdFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) {
                     try {
                         if (!TextUtils.isEmpty(morny)) {
-                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish());
+                            TipUtil.show(NFCWreatActivityQHOline.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivityQHOline.this.finish());
                         } else {
-                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish());
+                            TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivityQHOline.this.finish());
                         }
 
                     } catch (Exception e) {
@@ -333,7 +330,7 @@
                         CrashReport.postCatchedException(e);
                     }
                 } else {
-                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
+                    TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱澶辫触");
                 }
                 stopAnim();
             } else if (userCard == null && userCardBean != null) {
@@ -349,9 +346,9 @@
         }
     }
 
+
     @Override
-    public void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
+    public void onNfcBack(Intent intent) {
         try {
             this.intent = intent;
             if (isUser) {
@@ -395,18 +392,18 @@
                 if (WriteCardUtils.setUser(intent, userCard, this)) {
                     confromRecharge(rechargeBean.getOrderId(), 0);
                 } else {
-                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
+                    TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
                 }
             } else {
-                TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
+                TipUtil.show(NFCWreatActivityQHOline.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
             }
         } catch (Exception e) {
-            TipUtil.show(NFCWreatActivity.this, "璇诲彇閿欒锛岃閲嶈瘯");
+            TipUtil.show(NFCWreatActivityQHOline.this, "璇诲彇閿欒锛岃閲嶈瘯");
         }
     }
 
     private void startDetailActivity(String statu) {
-        Intent detail = new Intent(this, RechargeDetailActivity.class);
+        Intent detail = new Intent(this, RechargeDetailActivityQHOline.class);
         detail.putExtra("statu", statu);
         detail.putExtra("userCard", userCard);
         if (!TextUtils.isEmpty(morny)) {
@@ -416,13 +413,13 @@
             detail.putExtra("userCardBean", userCardBean);
         }
         startActivity(detail);
-        if (NewCardActivity.newCardActivity != null) {
-            NewCardActivity.newCardActivity.finish();
+        if (NewCardActivityQHOline.newCardActivity != null) {
+            NewCardActivityQHOline.newCardActivity.finish();
         }
-        if (RechargeActivity.rechargeActivity != null) {
-            RechargeActivity.rechargeActivity.finish();
+        if (RechargeActivityQHOline.rechargeActivity != null) {
+            RechargeActivityQHOline.rechargeActivity.finish();
         }
-        NFCWreatActivity.nfcWreatActivity.finish();
+        NFCWreatActivityQHOline.nfcWreatActivity.finish();
     }
 
 
@@ -448,15 +445,15 @@
     }
 
     private void back() {
-        confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> {
+        confirmDialog = new ConfirmDialog(NFCWreatActivityQHOline.this, v -> {
             confirmDialog.dismiss();
-            if (NewCardActivity.newCardActivity != null) {
-                NewCardActivity.newCardActivity.finish();
+            if (NewCardActivityQHOline.newCardActivity != null) {
+                NewCardActivityQHOline.newCardActivity.finish();
             }
-            if (RechargeActivity.rechargeActivity != null) {
-                RechargeActivity.rechargeActivity.finish();
+            if (RechargeActivityQHOline.rechargeActivity != null) {
+                RechargeActivityQHOline.rechargeActivity.finish();
             }
-            NFCWreatActivity.nfcWreatActivity.finish();
+            NFCWreatActivityQHOline.nfcWreatActivity.finish();
         });
         confirmDialog.show();
     }
@@ -495,7 +492,7 @@
                     userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16)));
                     userCardBean.setCardNumber(cardNumber);
                     userCardBean.setUserCode(userCode);
-                    if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) {
+                    if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivityQHOline.this)) {
                         confromOpenCard(t.getData().getIccardRechargeRecordId(), 0);
                     } else {
                         confromOpenCard(t.getData().getIccardRechargeRecordId(), 2);
@@ -530,7 +527,7 @@
                         baseDao.userCardDao().insert(userCardBean);
                         startDetailActivity("缁堢鍐欏崱");
                     } else {
-                        TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒");
+                        TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒");
                     }
                 }
             }
@@ -565,7 +562,7 @@
                         PrintUtils.printerData(rechargeBean);
                         startDetailActivity("缁堢鍐欏崱");
                     } else {
-                        TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒");
+                        TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒");
                     }
                 } else {
                     ToastUtil.show(t.getMsg());
@@ -582,7 +579,7 @@
         if (replaceType == BaseCommon.REPLACE_NO_CARD) {
             replaceCardPost("", "");
         } else if (replaceType == BaseCommon.REPLACE_HAS_CARD) {
-            managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivity.this).getManagerToUserCardData();
+            managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivityQHOline.this).getManagerToUserCardData(new ManagerToUserCard());
             //鍒ゆ柇鏄惁宸茬粡鍦ㄦ帶鍒跺櫒绔埛鍗�
             if (managerToUserCard.getCardWriteState() == 1) {
                 replaceCardPost(MornyUtil.changeF2Y(managerToUserCard.getBalance()), MornyUtil.changeF2Y(managerToUserCard.getSurplusElecticity()));
@@ -629,14 +626,14 @@
                     userCard.setTotalMorny(MornyUtil.changeY2F(replaceCardResult.getTotalRechargeMoney()));
                     userCard.setRechargeDate(Calendar.getInstance());
                     userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
-                    if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) {
+                    if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivityQHOline.this)) {
                         userCardBean.setCardNumber(cardNumber);
                         userCardBean.setUserCode(userCode);
                         userCardBean.setDate(System.currentTimeMillis());
                         baseDao.userCardDao().insert(userCardBean);
                         confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0);
                     } else {
-                        TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶈瘯");
+                        TipUtil.show(NFCWreatActivityQHOline.this, "鍐欏崱澶辫触锛岃閲嶈瘯");
                     }
                     //   鎵撳嵃鐩稿叧
 //                    setPrinterData(rechargeBean);
@@ -665,12 +662,12 @@
             @Override
             public void onNext(BaseResponse<LoginResult> t) {
                 if (t.isSuccess()) {
-                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛锛�", () -> {
-                        if (UserSearchActivity.userSearchActivity != null) {
-                            UserSearchActivity.userSearchActivity.finish();
-                            UserSearchActivity.userSearchActivity = null;
+                    TipUtil.show(NFCWreatActivityQHOline.this, "琛ュ崱鎴愬姛锛�", () -> {
+                        if (UserSearchActivityQHOline.userSearchActivity != null) {
+                            UserSearchActivityQHOline.userSearchActivity.finish();
+                            UserSearchActivityQHOline.userSearchActivity = null;
                         }
-                        NFCWreatActivity.this.finish();
+                        NFCWreatActivityQHOline.this.finish();
                     });
                 }
             }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivityQHOline.java
similarity index 95%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivityQHOline.java
index a620a8d..e447d0c 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivityQHOline.java
@@ -20,15 +20,12 @@
 
 import com.dayu.qiheonlinelibrary.QHOnLineApplication;
 import com.dayu.qiheonlinelibrary.bean.AddUserResult;
-import com.dayu.qiheonlinelibrary.bean.PricePlanResult;
 import com.dayu.qiheonlinelibrary.bean.UserListResult;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityNewCardQhlBinding;
-import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
 import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
 import com.dayu.qiheonlinelibrary.net.ApiManager;
 import com.dayu.qiheonlinelibrary.net.BaseResponse;
-import com.dayu.qiheonlinelibrary.net.RSAUtile;
 import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
 import com.hjq.permissions.OnPermissionCallback;
 import com.hjq.permissions.Permission;
@@ -36,9 +33,7 @@
 import com.kernal.passportreader.sdk.CardsCameraActivity;
 import com.kernal.passportreader.sdk.utils.DefaultPicSavePath;
 
-import java.text.SimpleDateFormat;
 import java.util.Calendar;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -55,13 +50,13 @@
  * Date: 2023-11-10 19:52
  * Description: 鏂板崱娉ㄥ唽
  */
-public class NewCardActivity extends BaseActivity {
+public class NewCardActivityQHOline extends QHOlineBaseActivity {
 
     public static final int SCAN_IDCARD_REQUEST = 1;
 
     ActivityNewCardQhlBinding newCardBinding;
 
-    static NewCardActivity newCardActivity;
+    static NewCardActivityQHOline newCardActivity;
     private int defValueMainId = 2;
     private int defValueSubId = 0;
 
@@ -99,17 +94,17 @@
                     && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
             ) {
                 if (userName.length() <= 1) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
+                    TipUtil.show(NewCardActivityQHOline.this, "璇疯緭鍏ユ纭鍚�");
                 } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
+                    TipUtil.show(NewCardActivityQHOline.this, "璇疯緭鍏ユ纭墜鏈哄彿");
                 } else if (!Utils.check(userID)) {
-                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
+                    TipUtil.show(NewCardActivityQHOline.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
                 } else {
                     selectUser(userID, phone, userName, morny);
                 }
 
             } else {
-                TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                TipUtil.show(NewCardActivityQHOline.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
             }
         });
     }
@@ -361,7 +356,7 @@
         userCardBean.setDate(System.currentTimeMillis());
         userCardBean.setSerial(DeviceUtils.getSN());
 
-        Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class);
+        Intent intent = new Intent(NewCardActivityQHOline.this, NFCWreatActivityQHOline.class);
         intent.putExtra("userCard", userCard);
         intent.putExtra("dbUserCard", userCardBean);
         startActivity(intent);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivityQHOline.java
similarity index 97%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivityQHOline.java
index 05e0fcd..9f26445 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivityQHOline.java
@@ -34,7 +34,7 @@
  * Description: 鏂板崱娉ㄥ唽鍒楄〃鐣岄潰
  */
 
-public class NewCardListActivity extends BaseActivity {
+public class NewCardListActivityQHOline extends QHOlineBaseActivity {
 
 
     ActivityNewcardListQhlBinding newcardListBinding;
@@ -154,7 +154,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(NewCardListActivityQHOline.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
 //                    try {
 //                        endTime = endTime + (1000 * 60 * 60 * 24) - 1;
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivityQHOline.java
similarity index 72%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivityQHOline.java
index 028a4e4..c0fa35b 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ParameterActivityQHOline.java
@@ -13,7 +13,7 @@
  * Date: 2023-11-06 11:47
  * Description: 鍙傛暟璁剧疆鐣岄潰
  */
-public class ParameterActivity extends BaseActivity {
+public class ParameterActivityQHOline extends QHOlineBaseActivity {
     ActivityParameterQhlBinding binding;
 
     @Override
@@ -27,27 +27,27 @@
     private void initView() {
         //璁剧疆鍩熷悕鍗�
         binding.parameterDomain.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, DomainActivity.class);
+            Intent intent = new Intent(ParameterActivityQHOline.this, DomainActivityQHOline.class);
             startActivity(intent);
         });
 //       姘存车鍔熺巼璁剧疆
         binding.parameterPower.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, PowerActivity.class);
+            Intent intent = new Intent(ParameterActivityQHOline.this, PowerActivityQHOline.class);
             startActivity(intent);
         });
         //鐢甸噺鍗曚环璁剧疆
         binding.parameterElectricPrice.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, ElectricPriceActivity.class);
+            Intent intent = new Intent(ParameterActivityQHOline.this, ElectricPriceActivityQHOline.class);
             startActivity(intent);
         });
         //鍗℃爣璇嗚缃�
         binding.parameterCardIdentifying.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, IdentifyingActivity.class);
+            Intent intent = new Intent(ParameterActivityQHOline.this, IdentifyingActivityQHOline.class);
             startActivity(intent);
         });
         //瀵嗙爜鍗¤缃瘑鐮�
         binding.parameterPassWordCard.setOnClickListener(v -> {
-            Intent intent = new Intent(ParameterActivity.this, PasswordCardActivity.class);
+            Intent intent = new Intent(ParameterActivityQHOline.this, PasswordCardActivityQHOline.class);
             startActivity(intent);
         });
         //鍖哄煙琛ㄥ彿鍗�
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivityQHOline.java
similarity index 80%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivityQHOline.java
index d5901ae..5563f12 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PassWordActivityQHOline.java
@@ -16,7 +16,7 @@
  * Date: 2023-11-10 19:52
  * Description: 淇敼瀵嗙爜鐣岄潰
  */
-public class PassWordActivity extends BaseActivity {
+public class PassWordActivityQHOline extends QHOlineBaseActivity {
 
     ActivityPswQhlBinding pswBinding;
 
@@ -41,18 +41,18 @@
                         if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) {
                             passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString());
                             baseBaseDao.loginPsDao().insert(passWordBean);
-                            TipUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚", () -> {
-                                PassWordActivity.this.finish();
+                            TipUtil.show(PassWordActivityQHOline.this, "瀵嗙爜淇敼瀹屾垚", () -> {
+                                PassWordActivityQHOline.this.finish();
                             });
 
                         } else {
-                            TipUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
+                            TipUtil.show(PassWordActivityQHOline.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
                         }
                     } else {
-                        TipUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
+                        TipUtil.show(PassWordActivityQHOline.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
                     }
                 } else {
-                    TipUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�");
+                    TipUtil.show(PassWordActivityQHOline.this, "璇疯緭瀹屽唴瀹�");
                 }
 
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivityQHOline.java
similarity index 94%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivityQHOline.java
index 2b02863..561edd1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PasswordCardActivityQHOline.java
@@ -18,7 +18,7 @@
  * Time: 16:21
  * 澶囨敞锛氬瘑鐮佸崱璁剧疆鐣岄潰
  */
-public class PasswordCardActivity extends BaseActivity {
+public class PasswordCardActivityQHOline extends QHOlineBaseActivity {
 
     ActivityPasswordCardQhlBinding binding;
 
@@ -54,7 +54,7 @@
                     if (data.length() == 12) {
                         cardBean.setPassWord(data);
                         baseDao.passWordCardDao().insert(cardBean);
-                        TipUtil.show(PasswordCardActivity.this, "淇濆瓨鎴愬姛");
+                        TipUtil.show(PasswordCardActivityQHOline.this, "淇濆瓨鎴愬姛");
                         initData();
                     } else {
                         TipUtil.show("璇疯緭鍏ユ纭殑12浣嶅瓧绗︾殑16杩涘埗鍗″瘑鐮�");
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivityQHOline.java
similarity index 96%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivityQHOline.java
index 2dbb4a7..3de3b3a 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/PowerActivityQHOline.java
@@ -16,7 +16,7 @@
  * Date: 2023-11-08 21:19
  * Description: 鍔熺巼璁剧疆
  */
-public class PowerActivity extends BaseActivity {
+public class PowerActivityQHOline extends QHOlineBaseActivity {
     ActivityPowerQhlBinding powerBinding;
     PowerBean powerBean = new PowerBean();
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseActivity.java
new file mode 100644
index 0000000..5bd958b
--- /dev/null
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseActivity.java
@@ -0,0 +1,30 @@
+package com.dayu.qiheonlinelibrary.activity;
+
+import android.os.Bundle;
+
+import com.dayu.baselibrary.activity.BaseActivity;
+import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton;
+import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase;
+
+
+/**
+ * Created by zuoxiao on 2018/12/20.
+ */
+
+public class QHOlineBaseActivity extends BaseActivity {
+    private final String TAG = "BaseActivity";
+
+    //z涓荤嚎绋嬫煡璇�
+    public QHOnLineAppDatabase baseDao;
+    //寮傛绾跨▼鏌ヨ
+    public QHOnLineAppDatabase asynchBaseDao;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        baseDao = QHOnlineBaseDaoSingleton.getInstance(this);
+        asynchBaseDao = QHOnlineBaseDaoSingleton.getAsynchInstance(this);
+    }
+
+
+}
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseNfcActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseNfcActivity.java
new file mode 100644
index 0000000..4ec9b63
--- /dev/null
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/QHOlineBaseNfcActivity.java
@@ -0,0 +1,37 @@
+package com.dayu.qiheonlinelibrary.activity;
+
+import android.os.Bundle;
+
+import com.dayu.baselibrary.activity.BaseNfcActivity;
+import com.dayu.qiheonlinelibrary.card.UserCard;
+import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase;
+import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton;
+
+
+/**
+ * Author:Createdby zuo on 2018/12/2.
+ * Email:584182977@qq.com
+ * Description:
+ * 瀛愮被鍦╫nNewIntent鏂规硶涓繘琛孨FC鏍囩鐩稿叧鎿嶄綔銆�
+ * launchMode璁剧疆涓簊ingleTop鎴杝ingelTask锛屼繚璇丄ctivity鐨勯噸鐢ㄥ敮涓�
+ * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
+ * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
+ */
+public abstract class QHOlineBaseNfcActivity extends BaseNfcActivity {
+
+    volatile UserCard userCard;
+
+    //z涓荤嚎绋嬫煡璇�
+    public QHOnLineAppDatabase baseDao;
+    //寮傛绾跨▼鏌ヨ
+    public QHOnLineAppDatabase asynchBaseDao;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        baseDao = QHOnlineBaseDaoSingleton.getInstance(this);
+        asynchBaseDao = QHOnlineBaseDaoSingleton.getAsynchInstance(this);
+    }
+
+
+}
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
index a359ef0..e2ae59a 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
@@ -37,7 +37,7 @@
  * Date: 2023-11-10 19:52
  * Description: 璇诲崱鐣岄潰
  */
-public class ReadCardAcitivy extends BaseNfcActivity {
+public class ReadCardAcitivy extends QHOlineBaseNfcActivity {
 
     volatile UserCard userCard;
     ActivityRedCardQhlBinding redCardBinding;
@@ -57,14 +57,14 @@
     }
 
 
+
     @Override
-    public void onNewIntent(Intent intent) {
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             readAllData(intent);
         }
-        super.onNewIntent(intent);
     }
 
     /**
@@ -97,7 +97,7 @@
 
                 if (!data.isEmpty()) {
                     if (!TextUtils.isEmpty(cardNumber)) {
-                        userCard = UserCard.getBean(data);
+                        userCard = new UserCard().getBean(data);
                         getUserInfoAndCardInfo(cardNumber,userCard.getMyUserCode());
                     } else {
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivityQHOline.java
similarity index 88%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivityQHOline.java
index 967de28..5da9dc6 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivityQHOline.java
@@ -16,7 +16,6 @@
 import com.dayu.qiheonlinelibrary.R;
 import com.dayu.qiheonlinelibrary.bean.CardInfoResult;
 import com.dayu.qiheonlinelibrary.bean.RechargeResult;
-import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeQhlBinding;
 import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
 import com.dayu.qiheonlinelibrary.net.ApiManager;
@@ -37,12 +36,12 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�肩晫闈�
  */
-public class RechargeActivity extends BaseNfcActivity {
+public class RechargeActivityQHOline extends QHOlineBaseNfcActivity {
 
     Intent intent;
 
     ActivityRechargeQhlBinding binding;
-    public static RechargeActivity rechargeActivity;
+    public static RechargeActivityQHOline rechargeActivity;
 
 
     String cardNumber = null;//瀹炰綋鍗″彿
@@ -71,7 +70,10 @@
         }
     }
 
-    public void onNewIntent(Intent intent) {
+
+
+    @Override
+    public void onNfcBack(Intent intent) {
         this.intent = intent;
         try {
             readAllData();
@@ -79,7 +81,6 @@
             e.printStackTrace();
             CrashReport.postCatchedException(e);
         }
-        super.onNewIntent(intent);
     }
 
 
@@ -117,7 +118,7 @@
             binding.redStatu.setTextColor(this.getResources().getColor(R.color.black));
         } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
             setCardState("鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��");
-            TipUtil.show(RechargeActivity.this, "鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��");
+            TipUtil.show(RechargeActivityQHOline.this, "鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��");
         } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
             setCardState("鍙犲姞鍏呭��");
         } else {
@@ -160,7 +161,7 @@
             if (!TextUtils.isEmpty(morny)) {
                 rechaege(morny);
             } else {
-                TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰�");
+                TipUtil.show(RechargeActivityQHOline.this, "璇疯緭鍏ュ厖鍊奸噾棰�");
             }
         });
     }
@@ -231,7 +232,7 @@
         int deductionMorny = MornyUtil.changeY2F(morny) + userCard.getBalance() - MornyUtil.changeY2F(balance);
 
         if (MornyUtil.changeY2F(morny) < deductionMorny) {
-            TipUtil.show(RechargeActivity.this, "褰撳墠鍏呭�奸噾棰濆皬浜庤ˉ鎵i噾棰濓紝琛ユ墸閲戦涓�" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝鍏呭�奸噾棰濆簲澶т簬琛ユ墸閲戦锛�");
+            TipUtil.show(RechargeActivityQHOline.this, "褰撳墠鍏呭�奸噾棰濆皬浜庤ˉ鎵i噾棰濓紝琛ユ墸閲戦涓�" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝鍏呭�奸噾棰濆簲澶т簬琛ユ墸閲戦锛�");
             return;
         }
 
@@ -268,16 +269,16 @@
         userCard.setRechargeDate(calendar);
         userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
         if (deductionMorny == 0) {
-            Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(RechargeActivityQHOline.this, NFCWreatActivityQHOline.class);
             intent.putExtra("morny", morny);
             intent.putExtra("userCard", userCard);
             intent.putExtra("rechargeBean", rechargeBean);
             startActivity(intent);
         } else {
-            TipUtil.show(RechargeActivity.this, "鎸傚け鍗″悗鏈夎ˉ浜ら噾棰濓紒琛ヤ氦閲戦涓猴細" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝璇︽儏鍙湪骞冲彴鏌ヨ銆�", new TipUtil.TipListener() {
+            TipUtil.show(RechargeActivityQHOline.this, "鎸傚け鍗″悗鏈夎ˉ浜ら噾棰濓紒琛ヤ氦閲戦涓猴細" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝璇︽儏鍙湪骞冲彴鏌ヨ銆�", new TipUtil.TipListener() {
                 @Override
                 public void onCancle() {
-                    Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+                    Intent intent = new Intent(RechargeActivityQHOline.this, NFCWreatActivityQHOline.class);
                     intent.putExtra("morny", morny);
                     intent.putExtra("userCard", userCard);
                     intent.putExtra("rechargeBean", rechargeBean);
@@ -316,10 +317,10 @@
                         RechargeResult rechargeResult = t.getData();
                         startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId());
                     } else {
-                        TipUtil.show(RechargeActivity.this, "鍏呭�煎け璐ヨ閲嶈瘯锛�");
+                        TipUtil.show(RechargeActivityQHOline.this, "鍏呭�煎け璐ヨ閲嶈瘯锛�");
                     }
                 } else {
-                    TipUtil.show(RechargeActivity.this, t.getMsg());
+                    TipUtil.show(RechargeActivityQHOline.this, t.getMsg());
                 }
             }
         });
@@ -350,22 +351,22 @@
                                     cardInfoResult = t.getData();
                                     setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime());
                                 } else {
-                                    TipUtil.show(RechargeActivity.this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
+                                    TipUtil.show(RechargeActivityQHOline.this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
                                 }
                             } else {
-                                TipUtil.show(RechargeActivity.this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+                                TipUtil.show(RechargeActivityQHOline.this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
                             }
                         } else if (t.getData().getIccardStatus() == 1) {
-                            TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡娉ㄩ攢");
+                            TipUtil.show(RechargeActivityQHOline.this, "褰撳墠鍗″凡娉ㄩ攢");
                         } else {
-                            TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡鎸傚け");
+                            TipUtil.show(RechargeActivityQHOline.this, "褰撳墠鍗″凡鎸傚け");
                         }
                     } else {
-                        TipUtil.show(RechargeActivity.this, "褰撳墠鍗$墖閿欒锛屾湭鑳芥煡鍒拌鍗′俊鎭紒");
+                        TipUtil.show(RechargeActivityQHOline.this, "褰撳墠鍗$墖閿欒锛屾湭鑳芥煡鍒拌鍗′俊鎭紒");
                     }
 
                 } else {
-                    TipUtil.show(RechargeActivity.this, t.getMsg());
+                    TipUtil.show(RechargeActivityQHOline.this, t.getMsg());
                 }
             }
         });
@@ -375,7 +376,7 @@
     private void setCardState(String state) {
         binding.rechargeLL.setVisibility(View.GONE);
         binding.rechargeRegistBtn.setVisibility(View.GONE);
-        binding.redStatu.setTextColor(RechargeActivity.this.getResources().getColor(com.dayu.baselibrary.R.color.red));
+        binding.redStatu.setTextColor(RechargeActivityQHOline.this.getResources().getColor(com.dayu.baselibrary.R.color.red));
         binding.redStatu.setText(state);
     }
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivityQHOline.java
similarity index 98%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivityQHOline.java
index 93e786e..563f0d7 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivityQHOline.java
@@ -22,7 +22,7 @@
  * Time: 15:01
  * 澶囨敞锛氬啓鍗″悗鐨勮鎯呴〉
  */
-public class RechargeDetailActivity extends BaseActivity {
+public class RechargeDetailActivityQHOline extends QHOlineBaseActivity {
 
     ActivityRechargeDetailQhlBinding binding;
     UserCard userCard;
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivityQHOline.java
similarity index 95%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivityQHOline.java
index 7dc4aca..d308c4f 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivityQHOline.java
@@ -37,7 +37,7 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�艰褰�
  */
-public class RechargeListActivity extends BaseActivity {
+public class RechargeListActivityQHOline extends QHOlineBaseActivity {
 
     ActivityRechargeListQhlBinding rechargeListBinding;
     RechargeAdapter adapter;
@@ -77,7 +77,7 @@
             }
         });
         adapter = new RechargeAdapter(this, rechargeList, position -> {
-            Intent intent = new Intent(RechargeListActivity.this, RechargeDetailActivity.class);
+            Intent intent = new Intent(RechargeListActivityQHOline.this, RechargeDetailActivityQHOline.class);
             intent.putExtra("rechargeBean", rechargeList.get(position));
             startActivity(intent);
         });
@@ -176,7 +176,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(RechargeListActivityQHOline.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     endTime = endTime + (1000 * 60 * 60 * 24) - 1;
                     rechargeList.clear();
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivityQHOline.java
similarity index 96%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivityQHOline.java
index b5ea799..5d25355 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RegionActivityQHOline.java
@@ -16,7 +16,7 @@
  * Time: 17:28
  * 澶囨敞锛氬尯鍩熸爣鍙峰崱璁剧疆鐣岄潰
  */
-public class RegionActivity extends BaseActivity {
+public class RegionActivityQHOline extends QHOlineBaseActivity {
 
 
     ActivityRegionQhlBinding binding;
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivityQHOline.java
similarity index 84%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivityQHOline.java
index cced7f6..8b6ff60 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivityQHOline.java
@@ -12,8 +12,6 @@
 import com.dayu.qiheonlinelibrary.card.PassWordCard;
 import com.dayu.qiheonlinelibrary.card.RegionCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityAdminQhlBinding;
-import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean;
-import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean;
 import com.dayu.qiheonlinelibrary.dbBean.PassWordCardBean;
 import com.dayu.qiheonlinelibrary.view.AdminCardDialog;
 
@@ -24,7 +22,7 @@
  * Date: 2023-11-5 09:52
  * Description: 绠$悊绯荤粺
  */
-public class SysActivity extends BaseActivity {
+public class SysActivityQHOline extends QHOlineBaseActivity {
 
     ActivityAdminQhlBinding adminBinding;
 
@@ -49,7 +47,7 @@
         });
         //鍒朵綔娓呴浂鍗�
         adminBinding.adminCleanZero.setOnClickListener(v -> {
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHOline.this, NFCWreatActivityQHOline.class);
             CleanCard cleanCard = new CleanCard();
             intent.putExtra("cleanCard", cleanCard);
             startActivity(intent);
@@ -58,7 +56,7 @@
         adminBinding.adminPassWordCard.setOnClickListener(v -> {
             PassWordCardBean powerBean = baseDao.passWordCardDao().findFirst();
             if (powerBean != null) {
-                Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+                Intent intent = new Intent(SysActivityQHOline.this, NFCWreatActivityQHOline.class);
                 PassWordCard passWordCard = new PassWordCard();
                 passWordCard.setPassWord(powerBean.getPassWord());
                 intent.putExtra("passWordCard", passWordCard);
@@ -71,7 +69,7 @@
         //鍒朵綔鍖哄煙琛ㄥ彿鍗�
         adminBinding.adminRegionCard.setOnClickListener(v -> {
 
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHOline.this, NFCWreatActivityQHOline.class);
             RegionCard regionCard = new RegionCard();
             regionCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber));
             intent.putExtra("regionCard", regionCard);
@@ -79,7 +77,7 @@
         });
         //鍒朵綔璁剧疆鐢ㄦ埛鐢甸噺鍗曚环鍗�
         adminBinding.adminElectricCard.setOnClickListener(v -> {
-            Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
+            Intent intent = new Intent(SysActivityQHOline.this, NFCWreatActivityQHOline.class);
 
             if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().electriclePriceStr)) {
                 ElectricPriceCard electricPriceCard = new ElectricPriceCard();
@@ -93,7 +91,7 @@
         });
         //鏍煎紡鍖栧崱
         adminBinding.adminInitCard.setOnClickListener(v -> {
-            Intent intent = new Intent(this, InitialuzeActivity.class);
+            Intent intent = new Intent(this, InitialuzeActivityQHOline.class);
             startActivity(intent);
         });
     }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivityQHOline.java
similarity index 91%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivityQHOline.java
index 3a3b79e..024a093 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivityQHOline.java
@@ -32,8 +32,8 @@
  * Time: 18:13
  * 澶囨敞锛氱敤鎴锋悳绱�
  */
-public class UserSearchActivity extends BaseActivity {
-    public static UserSearchActivity userSearchActivity;
+public class UserSearchActivityQHOline extends QHOlineBaseActivity {
+    public static UserSearchActivityQHOline userSearchActivity;
 
     ActivityUserSearchQhlBinding binding;
     UserSearchDialog userSearchDialog;
@@ -82,11 +82,11 @@
                 userCardBean.setPersonId(record.getPeasantId());
                 userCardBean.setAddressCode(record.getAdcd());
                 userCardBean.setAddressName(record.getAdcdName());
-                Intent intent = new Intent(UserSearchActivity.this, CardSearchActivity.class);
+                Intent intent = new Intent(UserSearchActivityQHOline.this, CardSearchActivityQHOline.class);
                 intent.putExtra("pearsontId", record.getPeasantId());
                 intent.putExtra("type", type);
                 intent.putExtra("dbUserCard", userCardBean);
-                UserSearchActivity.this.startActivity(intent);
+                UserSearchActivityQHOline.this.startActivity(intent);
             }
         });
         LinearLayoutManager layoutManager = new LinearLayoutManager(this);
@@ -103,8 +103,8 @@
 
     private void showDialog() {
         userSearchDialog = new UserSearchDialog(this, (name, cardId) -> {
-            UserSearchActivity.this.name = name;
-            UserSearchActivity.this.cardID = cardId;
+            UserSearchActivityQHOline.this.name = name;
+            UserSearchActivityQHOline.this.cardID = cardId;
 
             selectUser(cardId, name, true);
         });
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/ManagerCardAdapter.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/ManagerCardAdapter.java
index 0f4bb53..87260af 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/ManagerCardAdapter.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/ManagerCardAdapter.java
@@ -12,7 +12,7 @@
 import com.dayu.baselibrary.databinding.ItemNoMoreBinding;
 import com.dayu.baselibrary.utils.DateUtil;
 import com.dayu.qiheonlinelibrary.R;
-import com.dayu.qiheonlinelibrary.activity.ManagerListActivity;
+import com.dayu.qiheonlinelibrary.activity.ManagerListActivityQHOline;
 import com.dayu.qiheonlinelibrary.databinding.QiheLineItemReplacementsBinding;
 import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
 
@@ -22,9 +22,9 @@
 public class ManagerCardAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
 
     List<UserCardBean> rechargeList;
-    ManagerListActivity mContext;
+    ManagerListActivityQHOline mContext;
 
-    public ManagerCardAdapter(ManagerListActivity context, List<UserCardBean> rechargeList) {
+    public ManagerCardAdapter(ManagerListActivityQHOline context, List<UserCardBean> rechargeList) {
         mContext = context;
         this.rechargeList = rechargeList;
     }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
index c1646bd..89a4ae5 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
@@ -1,6 +1,6 @@
 package com.dayu.qiheonlinelibrary.card;
 
-import com.dayu.baselibrary.tools.BcdUtil;
+import com.dayu.baselibrary.bean.BaseManagerToUserCard;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
 import com.tencent.bugly.crashreport.CrashReport;
@@ -16,7 +16,7 @@
  * Time: 15:47
  * 澶囨敞锛�
  */
-public class ManagerToUserCard extends BaseCard implements Serializable {
+public class ManagerToUserCard extends BaseManagerToUserCard implements Serializable {
 
     public String cardType = CardCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
 
@@ -43,7 +43,8 @@
      *
      * @param data
      */
-    public static ManagerToUserCard getBean(List<byte[]> data) {
+    @Override
+    public  ManagerToUserCard getBean(List<byte[]> data) {
         try {
             ManagerToUserCard userCard = new ManagerToUserCard();
             //绗�0鍧楄В鏋�
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
index 07a4fcd..310e0e5 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
@@ -1,5 +1,6 @@
 package com.dayu.qiheonlinelibrary.card;
 
+import com.dayu.baselibrary.bean.BaseUserCardCard;
 import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
@@ -16,7 +17,7 @@
  * Date: 2023-11-07 9:37
  * Description: 榻愭渤椤圭洰鐢ㄦ埛鍗$粨鏋�
  */
-public class UserCard implements Serializable {
+public class UserCard extends BaseUserCardCard implements Serializable {
     public String cardType = CardCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
 
     public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
@@ -76,7 +77,8 @@
      *
      * @param data
      */
-    public static UserCard getBean(List<byte[]> data) {
+    @Override
+    public UserCard getBean(List<byte[]> data) {
         try {
             UserCard userCard = new UserCard();
             //绗�0鍧楄В鏋�
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
index 5ce38e4..c766431 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NFCWriteHelper.java
@@ -8,6 +8,7 @@
 import android.util.Log;
 
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.NfcWriteAdapter;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 
 import java.io.IOException;
@@ -20,16 +21,16 @@
  * email 1058083107@qq.com
  * description
  */
-public class NFCWriteHelper extends BaseNFCHelper {
+public class NFCWriteHelper extends QHBaseNFCHelper {
 
-    private Tag tag;
 
     private static NFCWriteHelper helper;
-    private static int PASSWORD_LENTH = 12;
+    private NfcWriteAdapter adapter;
+
 
     public NFCWriteHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+        adapter = new NfcWriteAdapter(intent, activity);
     }
 
     /**
@@ -45,21 +46,6 @@
         return helper;
     }
 
-    /**
-     * 璁剧疆NFC鍗$殑璇诲彇瀵嗙爜
-     *
-     * @param str
-     * @return
-     */
-    public NFCWriteHelper setReadPassword(String str) {
-        if (null != str && (str.length() <= PASSWORD_LENTH)) {
-            for (int i = 0; i < str.length(); i++) {
-                defauleKey[i] = (byte) str.charAt(i);
-            }
-        }
-        return helper;
-    }
-
 
     /**
      * 鍐欏崱
@@ -68,70 +54,10 @@
      * @param
      */
     public boolean writeUserData(UserCard userCard) {
-        if (userCard != null) {
-            int a = 1;
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                List<byte[]> list = new ArrayList<>();
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            for (int b = 0; b < 3; b++) {
-                                byte[] data;
-                                if (b == 0) {
-                                    data = userCard.getZeroBytes();
-                                } else if (b == 1) {
-                                    data = userCard.getOneBytes();
-                                } else {
-                                    data = userCard.getTwoBytes();
-                                }
-                                int bIndex = mfc.sectorToBlock(a);
-                                //鍐欏崱
-                                mfc.writeBlock(bIndex + b, data);
-                            }
-                            int bIndex = mfc.sectorToBlock(1);
-                            for (int j = 0; j < 3; j++) {
-                                //璇诲彇鏁版嵁
-                                byte[] data = null;
-                                try {
-                                    data = mfc.readBlock(bIndex);
-                                    bIndex++;
-                                    list.add(data);
-                                } catch (Exception e) {
-                                    e.printStackTrace();
-                                }
-                            }
-                            if (userCard.equlsUserCard(list)) {
-                                return true;
-                            }
-                            return false;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+        try {
+            return adapter.writeUserData(userCard);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -146,56 +72,10 @@
      * @param
      */
     public boolean writeData(byte[] str, int a, int b) {
-        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
-        if (str.length <= 16) {
-            try {
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        //杩炴帴NFC
-                        mfc.connect();
-                        //鑾峰彇鎵囧尯鏁伴噺
-                        int count = mfc.getSectorCount();
-                        //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
-                        if (a > count - 1 || a < 0) {
-                            return false;
-                        }
-                        //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
-                        int bCount = mfc.getBlockCountInSector(a);
-                        //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
-                        if (b > bCount - 1 || b < 0) {
-                            return false;
-                        }
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        } else {
-                            //鍐欏崱鏃朵慨鏀规墍鏈夊瘑鐮�
-                            changePasword(a, mfc);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            //鍐欏崱
-                            mfc.writeBlock(bIndex + b, str);
-                            return true;
-                        }
-                        return false;
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        return false;
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-            }
+        try {
+            return adapter.writeData(str, a, b);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -208,52 +88,10 @@
      *          //     * @param callback 杩斿洖鐩戝惉
      */
     public boolean changePasword(int a, MifareClassic mfc) {
-//        MifareClassic mfc = MifareClassic.get(tag);
-        byte[] data = new byte[16];
-        if (null != mfc) {
-            try {
-//                mfc.connect();
-//                int count = mfc.getSectorCount();
-//                boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-//                //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜
-//                if (isOpen) {
-                //灏嗗瘑鐮佽浆鎹负keyA
-                byte[] dataA = HexUtil.hexToByteArray(companyKeyA);
-                for (int i = 0; i < dataA.length; i++) {
-                    data[i] = dataA[i];
-                }
-                //杈撳叆鎺у埗浣�
-                data[6] = (byte) 0xFF;
-                data[7] = (byte) 0x07;
-                data[8] = (byte) 0x80;
-                data[9] = (byte) 0x69;
-                byte[] dataB = HexUtil.hexToByteArray(companyKeyB);
-                //灏嗗瘑鐮佽浆鎹负KeyB
-                for (int i = 0; i < dataB.length; i++) {
-                    data[i + 10] = dataB[i];
-                }
-                int bIndex = mfc.sectorToBlock(a);
-                int bCount = mfc.getBlockCountInSector(a);
-                //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡
-                mfc.writeBlock(bIndex + bCount - 1, data);
-//                    byte[] dataa = mfc.readBlock(bIndex + bCount - 1);
-//                    // 淇敼瀵嗙爜 A
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA);
-//                    // 淇敼瀵嗙爜 B
-//                    mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB);
-//                }
-                return true;
-            } catch (Exception e) {
-                e.printStackTrace();
-                return false;
-//                callback.isSusses(false);
-            } finally {
-//                try {
-//                    mfc.close();
-//                } catch (IOException e) {
-//                    e.printStackTrace();
-//                }
-            }
+        try {
+            return adapter.changePasword(a, mfc);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return false;
     }
@@ -265,80 +103,12 @@
      */
     public boolean initCard() {
         try {
-            MifareClassic mfc = MifareClassic.get(tag);
-            if (null != mfc) {
-                try {
-                    //杩炴帴NFC
-                    mfc.connect();
-                    //鑾峰彇鎵囧尯鏁伴噺
-                    int count = mfc.getSectorCount();
-                    byte[] data = new byte[16];
-                    String initData = "FFFFFFFFFFFFFF078069FFFFFFFFFFFF";
-                    byte[] initDataBytes = HexUtil.hexToByteArray(initData);
-                    for (int sector = 0; sector < count; sector++) {
-                        //楠岃瘉鎵囧尯瀵嗙爜
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(sector, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(sector, companyKey2);
-                            if (isOpen) {
-                                mfc.authenticateSectorWithKeyB(sector, companyKey2);
-                            }
-                        }
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(sector, companyKey);
-                            if (isOpen) {
-                                mfc.authenticateSectorWithKeyB(sector, companyKey);
-                            }
-                        }
-                        if (isOpen) {
-                            //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
-                            int blockCount = mfc.getBlockCountInSector(sector);
-                            int blockIndex = mfc.sectorToBlock(sector);
-                            for (int block = 0; block < blockCount; block++) {
-                                // 璺宠繃绗� 0 鎵囧尯鐨勭 0 鍧�
-                                if (sector == 0 && block == 0) {
-                                    blockIndex++;
-                                    continue;
-                                }
-
-                                if (block < 3) {
-                                    mfc.writeBlock(blockIndex, data);
-                                } else {
-                                    mfc.writeBlock(blockIndex, initDataBytes);
-                                }
-                                //鍐欏崱
-                                blockIndex++;
-                            }
-                        }
-                    }
-                    return true;
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    return false;
-                } finally {
-                    try {
-                        mfc.close();
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
+            return adapter.initCard();
         } catch (Exception e) {
             e.printStackTrace();
-            return false;
         }
         return false;
     }
 
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallback {
-        /**
-         * 杩斿洖鏄惁鎴愬姛
-         *
-         * @param flag
-         */
-        void isSusses(boolean flag);
-    }
+
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
index 424c0d1..8acb2c3 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
@@ -2,24 +2,14 @@
 
 import android.app.Activity;
 import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.nfc.Tag;
-import android.nfc.tech.MifareClassic;
-import android.util.Log;
 
-import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.baselibrary.bean.BaseManagerToUserCard;
+import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper;
+import com.dayu.baselibrary.tools.nfc.NfcReadAdapter;
 import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
 import com.dayu.qiheonlinelibrary.card.UserCard;
-import com.dayu.qiheonlinelibrary.utils.CardCommon;
 
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author zx
@@ -27,16 +17,15 @@
  * email 1058083107@qq.com
  * description nfc璇诲彇宸ュ叿绫�
  */
-public class NfcReadHelper extends BaseNFCHelper {
+public class NfcReadHelper extends QHBaseNFCHelper {
 
-    private Tag tag;
-    //    private NFCCallback callback;
     private static NfcReadHelper helper;
+    private NfcReadAdapter adapter;
 
 
     public NfcReadHelper(Intent intent, Activity activity) {
         super(activity);
-        this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
+        adapter = new NfcReadAdapter(intent, activity);
     }
 
     /**
@@ -58,60 +47,10 @@
      * @return
      */
     public UserCard getUserCardData() {
-        UserCard userCard = null;
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-
-                if (flag) {
-                    userCard = UserCard.getBean(list);
-                    return userCard;
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return (UserCard) adapter.getUserCardData(new UserCard());
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return null;
     }
@@ -122,36 +61,10 @@
      * @return
      */
     public String getCardNumber() {
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                mfc.connect();
-                //鑾峰彇褰撳墠鍗″彿
-                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(0);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
-                        hex = HexUtil.spaceHex(hex);
-                        hex = HexUtil.HighLowHex(hex);
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                        return hex.toUpperCase();
-                    }
-                }
-
-            } catch (IOException e) {
-                return BaseCommon.CARD_TYPE_ERROR1;
-            } finally {
-                try {
-                    mfc.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return adapter.getCardNumber();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return "";
     }
@@ -163,56 +76,10 @@
      * @return
      */
     public String getCradTypeAndCardNumber() {
-
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                mfc.connect();
-                StringBuilder strData = new StringBuilder();
-                //鑾峰彇褰撳墠鍗″彿
-                boolean isOpen = mfc.authenticateSectorWithKeyA(0, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(0, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(0);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
-                        hex = HexUtil.spaceHex(hex);
-                        hex = HexUtil.HighLowHex(hex);
-                        strData.append(hex);
-                        strData.append(",");
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                    }
-                }
-                //鑾峰彇鍗$墖绫诲瀷
-                isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    int bIndex = mfc.sectorToBlock(1);
-                    byte[] data = mfc.readBlock(bIndex + 0);
-                    if (data != null && data.length > 0) {
-                        String hex = HexUtil.byteToHex(data[0]);
-                        strData.append(hex);
-                        Log.i("NFCWreatActivity", "hex===" + hex);
-                        return strData.toString().toUpperCase();
-                    }
-                } else {
-                    Log.i("NFCWreatActivity", "isOpen===" + isOpen);
-                    return BaseCommon.CARD_TYPE_ERROR2;
-                }
-            } catch (IOException e) {
-                return BaseCommon.CARD_TYPE_ERROR1;
-            } finally {
-                try {
-                    mfc.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return adapter.getCradTypeAndCardNumber();
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return "";
     }
@@ -222,189 +89,22 @@
      *
      * @param callback
      */
-    public void getAllData(final NFCCallMapback callback) {
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                for (int i = 0; i < count; i++) {
-                    List<byte[]> list = new ArrayList<>();
-                    //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                    boolean isOpen = mfc.authenticateSectorWithKeyA(i, defauleKey);
-                    if (!isOpen) {
-                        isOpen = mfc.authenticateSectorWithKeyA(i, companyKey);
-                    }
-                    if (isOpen) {
-                        //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                        int bCount = mfc.getBlockCountInSector(i);
-                        //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                        int bIndex = mfc.sectorToBlock(i);
-                        //String data1 = "";
-                        for (int j = 0; j < bCount; j++) {
-                            //璇诲彇鏁版嵁
-                            byte[] data = null;
-                            try {
-                                data = mfc.readBlock(bIndex);
-                                bIndex++;
-                                list.add(data);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                        }
-                        flag = true;
-                    }
-                    map.put(i + "", list);
-                }
-                if (flag) {
-                    callback.callBack(map);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+    public void getAllData(final BaseNfcReadHelper.NFCCallMapback callback) {
+        try {
+            adapter.getAllData(callback);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 
 
     public List<byte[]> getOnesectorData() {
-        MifareClassic mfc = null;
         try {
-            mfc = MifareClassic.get(tag);
+            return adapter.getOnesectorData();
         } catch (Exception e) {
             e.printStackTrace();
-        }
-        List<byte[]> list = new ArrayList<>();
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                    return list;
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
         }
         return null;
-    }
-
-    /**
-     * 鑾峰彇1鎵囧尯淇℃伅
-     *
-     * @param callback
-     */
-    public void getOneSectorData(NFCCallListback callback) {
-
-
-        MifareClassic mfc = null;
-        try {
-            mfc = MifareClassic.get(tag);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
-                if (flag) {
-                    callback.callBack(list);
-                } else {
-                    callback.error(CardCommon.ERROR);
-                }
-            } catch (IOException e) {
-                callback.error(CardCommon.ERROR_MOVE);
-                e.printStackTrace();
-            } catch (Exception e) {
-                callback.error(CardCommon.ERROR);
-                e.printStackTrace();
-            } finally {
-
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }
     }
 
 
@@ -415,68 +115,12 @@
      * @param b        鍧�
      * @param callback
      */
-    public void getData(final int a, final int b, final NFCCallByteback callback) {
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                Map<String, List<String>> map = new HashMap<>();
-                MifareClassic mfc = MifareClassic.get(tag);
-                if (null != mfc) {
-                    try {
-                        mfc.connect();
-                        int count = mfc.getSectorCount();
-                        if (a < 0 || a > count - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-                        int bCount = mfc.getBlockCountInSector(a);
-                        if (b < 0 || b > bCount - 1) {
-                            callback.error(CardCommon.ERROR);
-                            return;
-                        }
-
-                        int type = mfc.getType();//鑾峰彇TAG鐨勭被鍨�
-                        String typeS = "";
-                        switch (type) {
-                            case MifareClassic.TYPE_CLASSIC:
-                                typeS = "TYPE_CLASSIC";
-                                break;
-                            case MifareClassic.TYPE_PLUS:
-                                typeS = "TYPE_PLUS";
-                                break;
-                            case MifareClassic.TYPE_PRO:
-                                typeS = "TYPE_PRO";
-                                break;
-                            case MifareClassic.TYPE_UNKNOWN:
-                                typeS = "TYPE_UNKNOWN";
-                                break;
-                        }
-                        boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
-                        if (!isOpen) {
-                            isOpen = mfc.authenticateSectorWithKeyA(a, companyKey);
-                        }
-                        if (isOpen) {
-                            int bIndex = mfc.sectorToBlock(a);
-                            byte[] data = mfc.readBlock(bIndex + b);
-                            callback.callBack(data);
-                        } else {
-                            callback.error(CardCommon.ERROR);
-                        }
-                    } catch (IOException e) {
-                        callback.error(CardCommon.ERROR_MOVE);
-                        e.printStackTrace();
-                    } catch (Exception e) {
-                        callback.error(CardCommon.ERROR);
-                    } finally {
-                        try {
-                            mfc.close();
-                        } catch (IOException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-            }
-        }).start();
+    public void getData(final int a, final int b, final BaseNfcReadHelper.NFCCallByteback callback) {
+        try {
+            adapter.getData(a, b, callback);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 
@@ -485,106 +129,15 @@
      *
      * @return
      */
-    public ManagerToUserCard getManagerToUserCardData() {
-        ManagerToUserCard managerToUserCard = null;
-        Map<String, List<byte[]>> map = new HashMap<>();
-        MifareClassic mfc = MifareClassic.get(tag);
-        if (null != mfc) {
-            try {
-                //閾炬帴NFC
-                mfc.connect();
-                //鑾峰彇鎵囧尯鏁伴噺
-                int count = mfc.getSectorCount();
-                //瀛樺偍绌洪棿
-                int size = mfc.getSize();
-                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
-                boolean flag = false;
-                List<byte[]> list = new ArrayList<>();
-                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
-                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
-                if (!isOpen) {
-                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
-                }
-                if (isOpen) {
-                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
-                    int bCount = mfc.getBlockCountInSector(1);
-                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
-                    int bIndex = mfc.sectorToBlock(1);
-                    //String data1 = "";
-                    for (int j = 0; j < bCount; j++) {
-                        //璇诲彇鏁版嵁
-                        byte[] data = null;
-                        try {
-                            data = mfc.readBlock(bIndex);
-                            bIndex++;
-                            list.add(data);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                    flag = true;
-                }
+    public ManagerToUserCard getManagerToUserCardData(BaseManagerToUserCard baseManagerToUserCard) {
 
-                if (flag) {
-                    managerToUserCard = ManagerToUserCard.getBean(list);
-                    return managerToUserCard;
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                try {
-                    mfc.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+        try {
+            return (ManagerToUserCard) adapter.getManagerToUserCardData(baseManagerToUserCard);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return null;
     }
 
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallMapback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(Map<String, List<byte[]>> data);
-
-
-        void error(int code);
-    }
-
-    /**
-     * 杩斿洖鐩戝惉绫�
-     */
-    public interface NFCCallListback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-        void callBack(List<byte[]> data);
-
-
-        void error(int code);
-    }
-
-
-    public interface NFCCallByteback {
-        /**
-         * 杩斿洖璇诲彇nfc鍗$殑鍏ㄩ儴淇℃伅
-         *
-         * @param data 鍓嶉潰浠h〃鎵囧尯 鍥涗釜鍧楃殑鏁版嵁鐢�#鍙烽殧寮�
-         */
-
-        void callBack(byte[] data);
-
-        void error(int code);
-    }
 
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/QHBaseNFCHelper.java
similarity index 86%
rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java
rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/QHBaseNFCHelper.java
index 55735e2..07d14c8 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/QHBaseNFCHelper.java
@@ -3,7 +3,9 @@
 import android.app.Activity;
 import android.util.Base64;
 
+import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.tools.nfc.BaseNFCHelper;
 
 import java.nio.charset.StandardCharsets;
 import java.security.InvalidKeyException;
@@ -21,23 +23,7 @@
  * Date: 2023-11-09 11:52
  * Description:
  */
-public class BaseNFCHelper {
-    /**
-     * 榛樿瀵嗙爜锛堢櫧鍗″瘑鐮侊級ffffffffffff
-     */
-    public byte[] defauleKey;
-
-    /**
-     * 鍏徃瀵嗙爜
-     */
-    public byte[] companyKey;
-
-    //榻愭渤娆ф爣瀵嗙爜
-    public byte[] companyKey2;
-    //瀵嗙爜a鍖�
-    String companyKeyA;
-    //瀵嗙爜B鍖�
-    String companyKeyB;
+public abstract class QHBaseNFCHelper extends BaseNFCHelper {
 
 
     static {
@@ -46,7 +32,7 @@
 
     public native String getSafeKey(Object object);
 
-    public BaseNFCHelper(Activity activity) {
+    public QHBaseNFCHelper(Activity activity) {
         // 瑙e瘑瀛楃涓�
         try {
             //鍒濆瀵嗙爜
@@ -59,6 +45,7 @@
             byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
             String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
             defauleKey = HexUtil.hexToByteArray(decryptedText);
+            listKeyA.add(defauleKey);
             //鍒濆瀵嗙爜
 //             byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
             //010203:qeg4DUWf0ni9JfRWtD2krA==
@@ -67,6 +54,7 @@
             //decryptedBytes2 瀵瑰簲010203040506
             companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
             companyKey = HexUtil.hexToByteArray(companyKeyA);
+            listKeyA.add(companyKey);
 
             //淇敼鍚庣殑瀵嗙爜
             byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
@@ -78,7 +66,8 @@
             byte[] encryptedBytes4 = Base64.decode("qeg4DUWf0ni9JfRWtD2krA==", Base64.DEFAULT);
             byte[] decryptedBytes4 = cipher.doFinal(encryptedBytes4);
             String companyKeyA = new String(decryptedBytes4, StandardCharsets.UTF_8);
-            companyKey2 = HexUtil.hexToByteArray(companyKeyA);
+            byte[] companyKey2 = HexUtil.hexToByteArray(companyKeyA);
+            listKeyA.add(companyKey2);
         } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException |
                  BadPaddingException | IllegalBlockSizeException e) {
             e.printStackTrace();
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/AdminCardDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/AdminCardDialog.java
index c87ee82..c12cbde 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/AdminCardDialog.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/AdminCardDialog.java
@@ -13,9 +13,9 @@
 import com.dayu.baselibrary.utils.TipUtil;
 import com.dayu.baselibrary.view.EdtDialog;
 import com.dayu.qiheonlinelibrary.R;
-import com.dayu.qiheonlinelibrary.activity.BaseActivity;
-import com.dayu.qiheonlinelibrary.activity.ManagerListActivity;
-import com.dayu.qiheonlinelibrary.activity.NFCWreatActivity;
+import com.dayu.qiheonlinelibrary.activity.ManagerListActivityQHOline;
+import com.dayu.qiheonlinelibrary.activity.NFCWreatActivityQHOline;
+import com.dayu.qiheonlinelibrary.activity.QHOlineBaseActivity;
 import com.dayu.qiheonlinelibrary.card.ManageCard;
 
 
@@ -27,14 +27,14 @@
  */
 public class AdminCardDialog extends Dialog {
 
-    BaseActivity mContext;
+    QHOlineBaseActivity mContext;
     boolean ischose = false;
 
     int type;
 
     EdtDialog edtDialog;
 
-    public AdminCardDialog(BaseActivity context) {
+    public AdminCardDialog(QHOlineBaseActivity context) {
         super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog);
         mContext = context;
         initView();
@@ -59,7 +59,7 @@
         okBtn.setOnClickListener(v -> {
             if (ischose) {
                 if (type == 0) {
-                    Intent intent = new Intent(mContext, ManagerListActivity.class);
+                    Intent intent = new Intent(mContext, ManagerListActivityQHOline.class);
 //                    intent.putExtra("cardNumber", cardNumber);
                     mContext.startActivity(intent);
                     AdminCardDialog.this.dismiss();
@@ -68,7 +68,7 @@
                         @Override
                         public void onOk(String data) {
                             if (!TextUtils.isEmpty(data) && data.length() == 8) {
-                                Intent intent = new Intent(mContext, NFCWreatActivity.class);
+                                Intent intent = new Intent(mContext, NFCWreatActivityQHOline.class);
                                 ManageCard manageCard = new ManageCard();
                                 manageCard.setUserCard(data);
                                 intent.putExtra("manageCard", manageCard);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
index bb149e1..dd93c00 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
@@ -6,7 +6,6 @@
 import android.content.DialogInterface;
 import android.text.TextUtils;
 import android.view.KeyEvent;
-import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.widget.EditText;
@@ -14,9 +13,8 @@
 import android.widget.TextView;
 
 import com.dayu.baselibrary.utils.ToastUtil;
-import com.dayu.baselibrary.view.EdtDialog;
 import com.dayu.qiheonlinelibrary.R;
-import com.dayu.qiheonlinelibrary.activity.BaseActivity;
+import com.dayu.qiheonlinelibrary.activity.QHOlineBaseActivity;
 
 /**
  * author: zuo
@@ -25,7 +23,7 @@
  * 澶囨敞锛氭悳绱㈢敤鎴�
  */
 public class UserSearchDialog extends Dialog {
-    BaseActivity mContext;
+    QHOlineBaseActivity mContext;
     EditText etName, etCardId;
 
     public interface SearchCallBack {
@@ -34,7 +32,7 @@
 
     SearchCallBack searchCallBack;
 
-    public UserSearchDialog(BaseActivity context, SearchCallBack searchCallBack) {
+    public UserSearchDialog(QHOlineBaseActivity context, SearchCallBack searchCallBack) {
         super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog);
         mContext = context;
         this.searchCallBack = searchCallBack;
diff --git a/qiheonlinelibrary/src/main/res/layout/qihe_line_item_replacements.xml b/qiheonlinelibrary/src/main/res/layout/qihe_line_item_replacements.xml
index 4910c47..63f20df 100644
--- a/qiheonlinelibrary/src/main/res/layout/qihe_line_item_replacements.xml
+++ b/qiheonlinelibrary/src/main/res/layout/qihe_line_item_replacements.xml
@@ -7,7 +7,7 @@
 
         <variable
             name="activity"
-            type="com.dayu.qiheonlinelibrary.activity.ManagerListActivity" />
+            type="com.dayu.qiheonlinelibrary.activity.ManagerListActivityQHOline" />
 
     </data>
 

--
Gitblit v1.8.0