左晓为主开发手持机充值管理机
zuoxiao
2024-09-29 ea8b02bbc2d20dc3db5b045fac4e6ddff7f44b7c
优化NFC模块架构,将一些方法抽调到父类中。修复一些bug
1 文件已重命名
10个文件已修改
6个文件已添加
1个文件已删除
491 ■■■■ 已修改文件
app/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/MyApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/build.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/exlibs/sdk.jar 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/libs/libprinter.jar 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/activity/BaseNfcActivity.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcReadAdapter.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcWriteAdapter.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
henanlibrary/src/main/java/com/dayu/henanlibrary/activity/NFCWreatActivity.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivityQHAlone.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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'
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);
    }
}
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'
baselibrary/exlibs/sdk.jar
Binary files differ
baselibrary/libs/libprinter.jar
Binary files differ
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);
    }
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) {
                                //以下为M1卡
                                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();
    }
    /**
     * 检测工作,判断设备的NFC支持情况
     *
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/HuaZhiNfcReadHepler.java
New file
@@ -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;
    }
}
baselibrary/src/main/java/com/dayu/baselibrary/tools/nfc/NfcCommonData.java
File was deleted
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;
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);
        }
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/HuaZhiRongHaiPrint.java
New file
@@ -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();
        }
    }
}
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/PrintAdater.java
New file
@@ -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;
        }
    }
}
baselibrary/src/main/java/com/dayu/baselibrary/tools/print/ShangMiAidlUtil.java
File was renamed from baselibrary/src/main/java/com/dayu/baselibrary/utils/AidlUtil.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 {
/**
 * 商米打印模块相关代码
 */
public class ShangMiAidlUtil {
    private static final String SERVICE_PACKAGE = "woyou.aidlservice.jiuiv5";
    private static final String SERVICE_ACTION = "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) {
baselibrary/src/main/java/com/dayu/baselibrary/utils/ModelUtils.java
New file
@@ -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;
    /**
     * 华智融海的SDK
     */
    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;
        }
    }
}
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();
            }
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();
            }
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();
            }