From ea8b02bbc2d20dc3db5b045fac4e6ddff7f44b7c Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期日, 29 九月 2024 10:30:10 +0800
Subject: [PATCH] 优化NFC模块架构,将一些方法抽调到父类中。修复一些bug

---
 baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java             |   72 ++++++++
 baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java                            |   17 +
 baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java                           |   34 +++
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java               |   37 ++--
 baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java                   |   44 +++-
 baselibrary/build.gradle                                                                       |    1 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java                  |    9 
 app/src/main/java/com/dayu/recharge/MyApplication.java                                         |    2 
 /dev/null                                                                                      |   21 --
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java |   28 +-
 baselibrary/exlibs/sdk.jar                                                                     |    0 
 henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java                |   31 +-
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java              |   70 +++++++
 baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java                   |   20 +-
 baselibrary/libs/libprinter.jar                                                                |    0 
 app/build.gradle                                                                               |    2 
 baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java                    |   75 ++++++++
 baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java                |   28 +-
 18 files changed, 382 insertions(+), 109 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index d8d6824..bc5b5a1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -67,7 +67,7 @@
     runtimeOnly("androidx.room:room-common:2.3.0")
     annotationProcessor "androidx.room:room-compiler:2.3.0"
 
-    implementation 'com.google.zxing:core:3.4.1'
+//    implementation 'com.google.zxing:core:3.4.1'
     implementation group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
     implementation 'com.wang.avi:library:2.1.3'
 
diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index 61d0747..fb0a33e 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -90,4 +90,6 @@
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
         context.startActivity(intent);
     }
+
+
 }
diff --git a/baselibrary/build.gradle b/baselibrary/build.gradle
index 16f5ba9..bb096b6 100644
--- a/baselibrary/build.gradle
+++ b/baselibrary/build.gradle
@@ -31,6 +31,7 @@
 dependencies {
 
     implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
+    compileOnly fileTree(include: ['*.jar'], dir: 'exlibs')
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     implementation 'androidx.core:core-ktx:1.8.0'
diff --git a/baselibrary/exlibs/sdk.jar b/baselibrary/exlibs/sdk.jar
new file mode 100644
index 0000000..ff18c27
--- /dev/null
+++ b/baselibrary/exlibs/sdk.jar
Binary files differ
diff --git a/baselibrary/libs/libprinter.jar b/baselibrary/libs/libprinter.jar
new file mode 100644
index 0000000..4a093f7
--- /dev/null
+++ b/baselibrary/libs/libprinter.jar
Binary files differ
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java b/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java
index 52f74bd..620b479 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java
@@ -1,8 +1,16 @@
 package com.dayu.baselibrary;
 
+import android.Manifest;
 import android.app.Application;
+import android.os.Build;
+import android.util.Log;
 
-import com.dayu.baselibrary.utils.AidlUtil;
+import com.android.newpos.printer.PrinterManager;
+import com.dayu.baselibrary.tools.print.PrintAdater;
+import com.dayu.baselibrary.tools.print.ShangMiAidlUtil;
+import com.dayu.baselibrary.utils.ModelUtils;
+import com.pos.device.SDKManager;
+import com.pos.device.sys.SystemManager;
 
 /**
  * author: zuo
@@ -22,12 +30,13 @@
     }
 
 
-    //鍒濆鍖栨墦鍗扮浉鍏虫湇鍔�
+
     public void onCreat(Application context) {
         application = context;
-        AidlUtil.getInstance().connectPrinterService(context);
-    }
 
+        //鍒濆鍖栨墦鍗扮浉鍏虫湇鍔�
+        PrintAdater.getInstance().connectPrinterService(context);
+    }
 
 
 
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java
index 2bbdda6..028ffb5 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java
@@ -6,8 +6,11 @@
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
 
-import com.dayu.baselibrary.tools.nfc.NfcCommonData;
+import com.dayu.baselibrary.tools.nfc.HuaZhiNfcReadHepler;
+import com.dayu.baselibrary.utils.ModelUtils;
 import com.dayu.baselibrary.utils.TipUtil;
+import com.pos.device.picc.PiccReader;
+import com.pos.device.picc.PiccReaderCallback;
 
 /**
  * author: zuo
@@ -22,14 +25,14 @@
 public abstract class BaseNfcActivity extends BaseActivity {
     protected NfcAdapter mNfcAdapter;
     private PendingIntent mPendingIntent;
-    public static int adapterType = NfcCommonData.defaultType;
+    public static int adapterType = ModelUtils.defaultType;
 
 
     @Override
     protected void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
         switch (adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 onNfcBack(intent);
                 break;
         }
@@ -44,13 +47,30 @@
     @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;
+        switch (ModelUtils.getModelType()) {
+            case ModelUtils.defaultType:
+            case ModelUtils.ShangMiType:
+                adapterType = ModelUtils.defaultType;
+                break;
+            case ModelUtils.HuaZhiRongHaiType:
+                adapterType = ModelUtils.HuaZhiRongHaiType;
+                PiccReader.getInstance().startSearchCard(HuaZhiNfcReadHepler.TIMEOUT, new PiccReaderCallback() {
+                    @Override
+                    public void onSearchResult(int result, int cardType) {
+                        if (result == PiccReaderCallback.SUCCESS) {
+                            switch (cardType) {
+                                //浠ヤ笅涓篗1鍗�
+                                case PiccReader.MIFARE_ONE_S50:
+                                case PiccReader.MIFARE_ONE_S70:
+                                    onNfcBack(null);
+                                    break;
+                            }
+                        }
+                    }
+                });
+                break;
         }
+
     }
 
     @Override
@@ -90,6 +110,12 @@
     }
 
 
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+
+    }
+
     /**
      * 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
      *
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java
new file mode 100644
index 0000000..47c3b33
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java
@@ -0,0 +1,70 @@
+package com.dayu.baselibrary.tools.nfc;
+
+import android.app.Activity;
+import android.content.Intent;
+
+import com.dayu.baselibrary.bean.BaseUserCardCard;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-27
+ * Time: 14:23
+ * 澶囨敞锛�
+ */
+public class HuaZhiNfcReadHepler extends BaseNfcReadHelper {
+
+    static String TAG = "HuaZhiNfcReadHepler";
+    static HuaZhiNfcReadHepler huaZhiNfcReadHepler;
+    public static final int TIMEOUT = -1;
+
+
+    public static HuaZhiNfcReadHepler getInstance(Intent intent, Activity activity) {
+        if (huaZhiNfcReadHepler != null) {
+            huaZhiNfcReadHepler = new HuaZhiNfcReadHepler();
+        }
+        return huaZhiNfcReadHepler;
+    }
+
+    @Override
+    public String getCradType() {
+        return "";
+    }
+
+    @Override
+    public void getAllData(NFCCallMapback callback) {
+
+    }
+
+    @Override
+    public void getOneSectorData(NFCCallListback callback) {
+
+    }
+
+    @Override
+    public String getCardNumber() {
+        return "";
+    }
+
+    @Override
+    public String getCradTypeAndCardNumber() {
+        return "";
+    }
+
+    @Override
+    public void getData(int a, int b, NFCCallByteback callback) {
+
+    }
+
+    @Override
+    public List<byte[]> getOnesectorData() {
+        return Collections.emptyList();
+    }
+
+    @Override
+    public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) {
+        return null;
+    }
+}
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
deleted file mode 100644
index d38ca8a..0000000
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java
+++ /dev/null
@@ -1,21 +0,0 @@
-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
index fcbae8b..f8d4288 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java
@@ -5,8 +5,8 @@
 
 import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.bean.BaseUserCardCard;
+import com.dayu.baselibrary.utils.ModelUtils;
 
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -21,7 +21,7 @@
 
     public NfcReadAdapter(Intent intent, Activity activity) {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 nativeNfcReadHelper = new NativeNfcReadHelper(intent, activity);
                 break;
         }
@@ -31,7 +31,7 @@
     @Override
     public String getCradType() {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return nativeNfcReadHelper.getCradType();
 
         }
@@ -41,7 +41,7 @@
     @Override
     public void getAllData(NFCCallMapback callback) {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 nativeNfcReadHelper.getAllData(callback);
                 break;
 
@@ -51,7 +51,7 @@
     @Override
     public void getOneSectorData(NFCCallListback callback) {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 nativeNfcReadHelper.getOneSectorData(callback);
                 break;
 
@@ -61,7 +61,7 @@
     @Override
     public String getCardNumber() {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return nativeNfcReadHelper.getCardNumber();
 
 
@@ -72,7 +72,7 @@
     @Override
     public String getCradTypeAndCardNumber() {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return nativeNfcReadHelper.getCradTypeAndCardNumber();
 
 
@@ -83,7 +83,7 @@
     @Override
     public void getData(int a, int b, NFCCallByteback callback) {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 nativeNfcReadHelper.getData(a, b, callback);
                 break;
         }
@@ -92,7 +92,7 @@
     @Override
     public List<byte[]> getOnesectorData() {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return nativeNfcReadHelper.getOnesectorData();
 
 
@@ -103,7 +103,7 @@
     @Override
     public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) {
         switch (BaseNfcActivity.adapterType) {
-            case NfcCommonData.defaultType:
+            case ModelUtils.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
index bed540e..8eab97b 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java
@@ -6,6 +6,7 @@
 
 import com.dayu.baselibrary.activity.BaseNfcActivity;
 import com.dayu.baselibrary.bean.BaseUserCardCard;
+import com.dayu.baselibrary.utils.ModelUtils;
 
 /**
  * author: zuo
@@ -17,7 +18,7 @@
     NativeNfcWriteHelper nativeNfcWriteHelper;
     public NfcWriteAdapter(Intent intent, Activity activity) {
         switch (BaseNfcActivity.adapterType){
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 nativeNfcWriteHelper=new NativeNfcWriteHelper(intent,activity);
                 break;
         }
@@ -26,7 +27,7 @@
     @Override
     public boolean writeUserData(BaseUserCardCard userCard) {
         switch (BaseNfcActivity.adapterType){
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return  nativeNfcWriteHelper.writeUserData(userCard);
 
         }
@@ -36,7 +37,7 @@
     @Override
     public boolean writeData(byte[] str, int a, int b) {
         switch (BaseNfcActivity.adapterType){
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return  nativeNfcWriteHelper.writeData(str,a,b);
 
         }
@@ -46,7 +47,7 @@
     @Override
     public boolean changePasword(int a, MifareClassic mfc) {
         switch (BaseNfcActivity.adapterType){
-            case NfcCommonData.defaultType:
+            case ModelUtils.defaultType:
                 return  nativeNfcWriteHelper.changePasword(a,mfc);
 
         }
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java
new file mode 100644
index 0000000..128b4b8
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java
@@ -0,0 +1,72 @@
+package com.dayu.baselibrary.tools.print;
+
+import android.app.Application;
+import android.util.Log;
+
+import com.android.newpos.printer.PrinterListener;
+import com.android.newpos.printer.PrinterManager;
+import com.android.newpos.printer.bean.PrintAlignMent;
+import com.android.newpos.printer.bean.PrintFontSize;
+import com.android.newpos.printer.bean.PrintTextProperty;
+import com.pos.device.SDKManager;
+
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-27
+ * Time: 11:10
+ * 澶囨敞锛氬崕鏅鸿瀺娴峰叕鍙告墦鍗扮浉鍏�
+ */
+public class HuaZhiRongHaiPrint {
+
+    static HuaZhiRongHaiPrint huaZhiRongHaiPrint;
+
+    public static HuaZhiRongHaiPrint getInstance() {
+        if (huaZhiRongHaiPrint == null) {
+            huaZhiRongHaiPrint = new HuaZhiRongHaiPrint();
+        }
+        return huaZhiRongHaiPrint;
+    }
+
+    public void connectPrinterService(Application context) {
+        SDKManager.init(context, () -> {
+            Log.d("application", "鍒濆鍖栨垚鍔�");
+            PrinterManager.getInstance().init(context.getApplicationContext());
+        });
+    }
+
+
+    /**
+     * 鎵撳嵃鎸囧畾瀛椾綋鐨勬枃鏈紝瀛椾綋璁剧疆鍙鏈鏈夋晥
+     *
+     * @param content: 瑕佹墦鍗版枃瀛�
+     * @param isBold:  鏄惁鍔犵矖
+     * @param size:    瀛椾綋澶у皬
+     */
+    public void printText(List<String> content, float size, boolean isBold, boolean isUnderLine) {
+
+        try {
+            for (int i = 0; i < content.size(); i++) {
+                PrinterManager.getInstance().addText(new PrintTextProperty(PrintFontSize.LARGE, PrintAlignMent.LEFT, true), content.get(i));
+            }
+            PrinterManager.getInstance().feedLine(3);
+            PrinterManager.getInstance().startPrint(new PrinterListener() {
+                @Override
+                public void onFinish() {
+                }
+
+                @Override
+                public void onError(int i) {
+
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+    }
+
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java
new file mode 100644
index 0000000..0ce425c
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java
@@ -0,0 +1,75 @@
+package com.dayu.baselibrary.tools.print;
+
+import android.app.Application;
+import android.content.Context;
+import android.util.Log;
+
+import com.android.newpos.printer.PrinterManager;
+import com.dayu.baselibrary.utils.ModelUtils;
+import com.pos.device.SDKManager;
+
+import java.util.List;
+
+/**
+ * author: zuo
+ * Date: 2024-09-27
+ * Time: 10:29
+ * 澶囨敞锛氭墦鍗扮浉鍏崇殑璺敱
+ */
+public class PrintAdater {
+
+    static PrintAdater printAdater;
+
+    public static PrintAdater getInstance() {
+        if (printAdater == null) {
+            printAdater = new PrintAdater();
+        }
+        return printAdater;
+    }
+
+    /**
+     * 杩炴帴鏈嶅姟
+     */
+    public void connectPrinterService(Application context) {
+        switch (ModelUtils.getModelType()) {
+            case ModelUtils.ShangMiType:
+                ShangMiAidlUtil.getInstance().connectPrinterService(context);
+                break;
+            case ModelUtils.HuaZhiRongHaiType:
+                HuaZhiRongHaiPrint.getInstance().connectPrinterService(context);
+                break;
+        }
+    }
+
+    /**
+     * 鏂紑鏈嶅姟
+     *
+     * @param context context
+     */
+    public static void disconnectPrinterService(Context context) {
+        switch (ModelUtils.getModelType()) {
+            case ModelUtils.ShangMiType:
+                ShangMiAidlUtil.getInstance().connectPrinterService(context);
+                break;
+        }
+    }
+
+    /**
+     * 鎵撳嵃鎸囧畾瀛椾綋鐨勬枃鏈紝瀛椾綋璁剧疆鍙鏈鏈夋晥
+     *
+     * @param content: 瑕佹墦鍗版枃瀛�
+     * @param isBold:  鏄惁鍔犵矖
+     * @param size:    瀛椾綋澶у皬
+     */
+    public static void printText(List<String> content, float size, boolean isBold, boolean isUnderLine) {
+        switch (ModelUtils.getModelType()) {
+            case ModelUtils.ShangMiType:
+                ShangMiAidlUtil.getInstance().printText(content, size, isBold, isUnderLine);
+                break;
+            case ModelUtils.HuaZhiRongHaiType:
+                HuaZhiRongHaiPrint.getInstance().printText(content, size, isBold, isUnderLine);
+                break;
+        }
+    }
+
+}
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/AidlUtil.java b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java
similarity index 92%
rename from baselibrary/src/main/java/com/dayu/baselibrary/utils/AidlUtil.java
rename to baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java
index 57ce8ea..4ff30e0 100644
--- a/baselibrary/src/main/java/com/dayu/baselibrary/utils/AidlUtil.java
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java
@@ -1,4 +1,4 @@
-package com.dayu.baselibrary.utils;
+package com.dayu.baselibrary.tools.print;
 
 import android.content.ComponentName;
 import android.content.Context;
@@ -14,6 +14,8 @@
 
 import com.dayu.baselibrary.R;
 import com.dayu.baselibrary.bean.TableItem;
+import com.dayu.baselibrary.utils.ESCUtil;
+import com.dayu.baselibrary.utils.PrinterCallback;
 
 
 import java.util.ArrayList;
@@ -23,19 +25,21 @@
 import woyou.aidlservice.jiuiv5.ICallback;
 import woyou.aidlservice.jiuiv5.IWoyouService;
 
-
-public class AidlUtil {
+/**
+ * 鍟嗙背鎵撳嵃妯″潡鐩稿叧浠g爜
+ */
+public class ShangMiAidlUtil {
     private static final String SERVICE锛縋ACKAGE = "woyou.aidlservice.jiuiv5";
     private static final String SERVICE锛緼CTION = "woyou.aidlservice.jiuiv5.IWoyouService";
 
     private IWoyouService woyouService;
-    private static AidlUtil mAidlUtil = new AidlUtil();
+    private static ShangMiAidlUtil mAidlUtil = new ShangMiAidlUtil();
     private Context context;
 
-    private AidlUtil() {
+    private ShangMiAidlUtil() {
     }
 
-    public static AidlUtil getInstance() {
+    public static ShangMiAidlUtil getInstance() {
         return mAidlUtil;
     }
 
@@ -220,7 +224,7 @@
     /**
      * 鎵撳嵃鏂囧瓧
      */
-    public void printText(String content, float size, boolean isBold, boolean isUnderLine) {
+    public void printText(List<String> content, float size, boolean isBold, boolean isUnderLine) {
         if (woyouService == null) {
             Toast.makeText(context, R.string.toast_2, Toast.LENGTH_LONG).show();
             return;
@@ -238,8 +242,10 @@
             } else {
                 woyouService.sendRAWData(ESCUtil.underlineOff(), null);
             }
-
-            woyouService.printTextWithFont(content, null, size, null);
+            woyouService.setFontSize(size, null);
+            for (int i = 0; i < content.size(); i++) {
+                woyouService.printText(content.get(i) + "\n", null);
+            }
             woyouService.lineWrap(3, null);
         } catch (RemoteException e) {
             e.printStackTrace();
@@ -248,7 +254,7 @@
     }
 
     /*
-    *鎵撳嵃鍥剧墖
+     *鎵撳嵃鍥剧墖
      */
     public void printBitmap(Bitmap bitmap) {
         if (woyouService == null) {
@@ -313,7 +319,7 @@
     }
 
     /*
-    * 绌烘墦涓夎锛�
+     * 绌烘墦涓夎锛�
      */
     public void print3Line() {
         if (woyouService == null) {
diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java b/baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java
new file mode 100644
index 0000000..64b0632
--- /dev/null
+++ b/baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java
@@ -0,0 +1,34 @@
+package com.dayu.baselibrary.utils;
+
+/**
+ * author: zuo
+ * Date: 2024-09-27
+ * Time: 10:18
+ * 澶囨敞锛氭満鍨嬬浉鍏冲叕鍏辨柟娉�
+ */
+public class ModelUtils {
+
+    /**
+     * 榛樿鐨勮皟鐢ㄦ柟寮忥紙瀹夊崜鍘熺敓锛�
+     */
+    public final static int defaultType = 0;
+    /**
+     * 鍗庢櫤铻嶆捣鐨凷DK
+     */
+    public final static int HuaZhiRongHaiType = 1;
+
+    public final static int ShangMiType = 2;
+
+    //鍒ゆ柇鏄摢涓満鍨�
+    public static int getModelType() {
+        int type;
+        try {
+            Class.forName("com.pos.device.config.DevConfig");
+            type = ModelUtils.HuaZhiRongHaiType;
+            return type;
+        } catch (ClassNotFoundException e) {
+            type = ModelUtils.ShangMiType;
+            return type;
+        }
+    }
+}
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 be76c16..13418a8 100644
--- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
+++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java
@@ -10,9 +10,9 @@
 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.tools.print.PrintAdater;
+import com.dayu.baselibrary.tools.print.ShangMiAidlUtil;
 import com.dayu.baselibrary.utils.BaseCommon;
 import com.dayu.baselibrary.utils.CRC8;
 import com.dayu.baselibrary.utils.DateUtil;
@@ -48,8 +48,10 @@
 import com.dayu.henanlibrary.view.ProgressDialog;
 import com.tencent.bugly.crashreport.CrashReport;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
+import java.util.List;
 
 /**
  * Copyright (C), 2023,
@@ -365,8 +367,6 @@
     }
 
 
-
-
     /**
      * 鎵撳嵃鏈虹浉鍏充俊鎭�
      *
@@ -374,24 +374,21 @@
      */
     private void setPrinterData(RechargeBean rechargeBean) {
         try {
-            StringBuffer data = new StringBuffer();
+            List<String> data = new ArrayList<>();
             if (rechargeBean != null) {
-                data.append("*****************************" + "\n");
 
-                data.append("璁惧搴忓垪鍙凤細").append(rechargeBean.getSerial()).append("\n");
-                data.append("鐢ㄦ埛鍚嶏細").append(rechargeBean.getUserName()).append("\n");
-                //            data.append("鎴�  鍙凤細" + rechargeBean.getUserNum() + "\n");
-                data.append("鍏呭�奸噾棰濓細").append(rechargeBean.getMorny()).append("鍏�").append("\n");
-                data.append("鍗″唴浣欓锛�").append(rechargeBean.getBalance()).append("鍏�").append("\n");
-                data.append("鏃�  鏈燂細").append(DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)).append("\n\n");
-                data.append("*****************************");
+                data.add("*****************************");
+                data.add("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial());
+                data.add("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName());
+                data.add("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + "鍏�");
+                data.add("鍗″唴浣欓锛�" + rechargeBean.getBalance() + "鍏�");
+                data.add("鏃�  鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2));
+                data.add("*****************************");
             }
-
             float size = 26;
-
             try {
-                AidlUtil.getInstance().printText(data.toString(), size, true, false);
-                AidlUtil.getInstance().print3Line();
+                PrintAdater.getInstance().printText(data, size, true, false);
+                ShangMiAidlUtil.getInstance().print3Line();
             } catch (Exception e) {
                 e.printStackTrace();
             }
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
index 4306e84..bdb654f 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java
@@ -9,7 +9,7 @@
 import android.view.View;
 
 import com.dayu.baselibrary.tools.HexUtil;
-import com.dayu.baselibrary.utils.AidlUtil;
+import com.dayu.baselibrary.tools.print.PrintAdater;
 import com.dayu.baselibrary.utils.BaseCommon;
 import com.dayu.baselibrary.utils.DateUtil;
 import com.dayu.baselibrary.utils.MornyUtil;
@@ -39,7 +39,9 @@
 import com.dayu.qihealonelibrary.utils.CardCommon;
 import com.tencent.bugly.crashreport.CrashReport;
 
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
 
 /**
  * Copyright (C), 2023,
@@ -47,7 +49,7 @@
  * Date: 2023-11-08 21:19
  * Description: nfc鍐欏崱鐣岄潰
  */
-public class NFCWreatActivityQHAlone  extends QHAloneBaseNfcActivity {
+public class NFCWreatActivityQHAlone extends QHAloneBaseNfcActivity {
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
@@ -364,22 +366,20 @@
      */
     private void setPrinterData(RechargeBean rechargeBean) {
         try {
-            StringBuffer data = new StringBuffer();
+            List<String> data = new ArrayList<>();
             if (rechargeBean != null) {
-                data.append("*****************************" + "\n");
-                data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
-                data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
-                data.append("鍗�  鍙凤細" + rechargeBean.getCardNumber() + "\n");
-                data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n");
-                data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n");
-                data.append("鏃�  鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n");
-                data.append("*****************************");
+                data.add("*****************************");
+                data.add("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial());
+                data.add("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName());
+                data.add("鍗�  鍙凤細" + rechargeBean.getCardNumber());
+                data.add("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�");
+                data.add("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�");
+                data.add("鏃�  鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2));
+                data.add("*****************************");
             }
             float size = 26;
-
             try {
-                AidlUtil.getInstance().printText(data.toString(), size, true, false);
-                AidlUtil.getInstance().print3Line();
+                PrintAdater.getInstance().printText(data, size, true, false);
             } catch (Exception e) {
                 e.printStackTrace();
             }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java
index 9d0d1b3..b21ded2 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java
@@ -1,12 +1,14 @@
 package com.dayu.qiheonlinelibrary.utils;
 
-import android.text.TextUtils;
-
-import com.dayu.baselibrary.utils.AidlUtil;
+import com.dayu.baselibrary.tools.print.PrintAdater;
+import com.dayu.baselibrary.tools.print.ShangMiAidlUtil;
 import com.dayu.baselibrary.utils.DateUtil;
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
 import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by Android Studio.
@@ -24,27 +26,26 @@
      */
     public static void printerData(RechargeBean rechargeBean) {
         try {
-            StringBuffer data = new StringBuffer();
+            List<String> data = new ArrayList<>();
             if (rechargeBean != null) {
-                data.append("*****************************" + "\n");
-                data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
-                data.append("濮�   鍚嶏細" + rechargeBean.getUserName() + "\n");
-                data.append("鍗�   鍙凤細" + rechargeBean.getCardNumber() + "\n");
-                data.append("鐢ㄦ埛缂栧彿锛�" + rechargeBean.getUserCode() + "\n");
-                data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n");
+                data.add("*****************************");
+                data.add("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial());
+                data.add("濮�   鍚嶏細" + rechargeBean.getUserName());
+                data.add("鍗�   鍙凤細" + rechargeBean.getCardNumber());
+                data.add("鐢ㄦ埛缂栧彿锛�" + rechargeBean.getUserCode());
+                data.add("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�");
                 if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) > 0) {
-                    data.append("琛ユ墸閲戦锛�" + rechargeBean.getDeductionMorny() + " 鍏�" + "\n");
+                    data.add("琛ユ墸閲戦锛�" + rechargeBean.getDeductionMorny() + " 鍏�");
                 }
-                data.append("鍏呭�煎悗鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n");
-                data.append("鍏呭�肩數閲忥細" + rechargeBean.getRechargeElectric() + " 搴�" + "\n");
-                data.append("鍏呭�煎悗鍗″唴鐢甸噺锛�" + rechargeBean.getSurplusElectic() + " 搴�" + "\n");
-                data.append("鏃�   鏈燂細" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n");
-                data.append("*****************************");
+                data.add("鍏呭�煎悗鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�");
+                data.add("鍏呭�肩數閲忥細" + rechargeBean.getRechargeElectric() + " 搴�");
+                data.add("鍏呭�煎悗鍗″唴鐢甸噺锛�" + rechargeBean.getSurplusElectic() + " 搴�");
+                data.add("鏃�   鏈燂細" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2));
+                data.add("*****************************");
             }
             float size = 26;
             try {
-                AidlUtil.getInstance().printText(data.toString(), size, true, false);
-//                AidlUtil.getInstance().print3Line();
+                PrintAdater.getInstance().printText(data, size, true, false);
             } catch (Exception e) {
                 e.printStackTrace();
             }

--
Gitblit v1.8.0