优化NFC模块架构,将一些方法抽调到父类中。修复一些bug
1 文件已重命名
10个文件已修改
6个文件已添加
1个文件已删除
| | |
| | | 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' |
| | | |
| | |
| | | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); |
| | | context.startActivity(intent); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | 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' |
| | |
| | | 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 |
| | |
| | | } |
| | | |
| | | |
| | | //初始化打印相关服务 |
| | | |
| | | public void onCreat(Application context) { |
| | | application = context; |
| | | AidlUtil.getInstance().connectPrinterService(context); |
| | | } |
| | | |
| | | //初始化打印相关服务 |
| | | PrintAdater.getInstance().connectPrinterService(context); |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | 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 |
| | |
| | | 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; |
| | | } |
| | |
| | | @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 |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 检测工作,判断设备的NFC支持情况 |
| | | * |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | |
| | | public NfcReadAdapter(Intent intent, Activity activity) { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | nativeNfcReadHelper = new NativeNfcReadHelper(intent, activity); |
| | | break; |
| | | } |
| | |
| | | @Override |
| | | public String getCradType() { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcReadHelper.getCradType(); |
| | | |
| | | } |
| | |
| | | @Override |
| | | public void getAllData(NFCCallMapback callback) { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | nativeNfcReadHelper.getAllData(callback); |
| | | break; |
| | | |
| | |
| | | @Override |
| | | public void getOneSectorData(NFCCallListback callback) { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | nativeNfcReadHelper.getOneSectorData(callback); |
| | | break; |
| | | |
| | |
| | | @Override |
| | | public String getCardNumber() { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcReadHelper.getCardNumber(); |
| | | |
| | | |
| | |
| | | @Override |
| | | public String getCradTypeAndCardNumber() { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcReadHelper.getCradTypeAndCardNumber(); |
| | | |
| | | |
| | |
| | | @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; |
| | | } |
| | |
| | | @Override |
| | | public List<byte[]> getOnesectorData() { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcReadHelper.getOnesectorData(); |
| | | |
| | | |
| | |
| | | @Override |
| | | public BaseUserCardCard getUserCardData(BaseUserCardCard userCardCard) { |
| | | switch (BaseNfcActivity.adapterType) { |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcReadHelper.getUserCardData(userCardCard); |
| | | } |
| | | return null; |
| | |
| | | |
| | | import com.dayu.baselibrary.activity.BaseNfcActivity; |
| | | import com.dayu.baselibrary.bean.BaseUserCardCard; |
| | | import com.dayu.baselibrary.utils.ModelUtils; |
| | | |
| | | /** |
| | | * author: zuo |
| | |
| | | NativeNfcWriteHelper nativeNfcWriteHelper; |
| | | public NfcWriteAdapter(Intent intent, Activity activity) { |
| | | switch (BaseNfcActivity.adapterType){ |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | nativeNfcWriteHelper=new NativeNfcWriteHelper(intent,activity); |
| | | break; |
| | | } |
| | |
| | | @Override |
| | | public boolean writeUserData(BaseUserCardCard userCard) { |
| | | switch (BaseNfcActivity.adapterType){ |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcWriteHelper.writeUserData(userCard); |
| | | |
| | | } |
| | |
| | | @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); |
| | | |
| | | } |
| | |
| | | @Override |
| | | public boolean changePasword(int a, MifareClassic mfc) { |
| | | switch (BaseNfcActivity.adapterType){ |
| | | case NfcCommonData.defaultType: |
| | | case ModelUtils.defaultType: |
| | | return nativeNfcWriteHelper.changePasword(a,mfc); |
| | | |
| | | } |
New file |
| | |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | } |
File was renamed from baselibrary/src/main/java/com/dayu/baselibrary/utils/AidlUtil.java |
| | |
| | | package com.dayu.baselibrary.utils; |
| | | package com.dayu.baselibrary.tools.print; |
| | | |
| | | import android.content.ComponentName; |
| | | import android.content.Context; |
| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | /** |
| | | * 打印文字 |
| | | */ |
| | | 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; |
| | |
| | | } 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(); |
| | |
| | | } |
| | | |
| | | /* |
| | | *打印图片 |
| | | *打印图片 |
| | | */ |
| | | public void printBitmap(Bitmap bitmap) { |
| | | if (woyouService == null) { |
| | |
| | | } |
| | | |
| | | /* |
| | | * 空打三行! |
| | | * 空打三行! |
| | | */ |
| | | public void print3Line() { |
| | | if (woyouService == null) { |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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, |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 打印机相关信息 |
| | | * |
| | |
| | | */ |
| | | 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(); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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, |
| | |
| | | * Date: 2023-11-08 21:19 |
| | | * Description: nfc写卡界面 |
| | | */ |
| | | public class NFCWreatActivityQHAlone extends QHAloneBaseNfcActivity { |
| | | public class NFCWreatActivityQHAlone extends QHAloneBaseNfcActivity { |
| | | |
| | | RegisteredCard registeredCard; |
| | | CleanUserCard cleanUserCard; |
| | |
| | | */ |
| | | 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(); |
| | | } |
| | |
| | | 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. |
| | |
| | | */ |
| | | 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(); |
| | | } |