From 063422853ec09c8608fee22f099d8a12b5943a7e Mon Sep 17 00:00:00 2001 From: MTing Date: Fri, 10 Oct 2025 14:22:00 +0800 Subject: [PATCH] fix 53.1 add listener for qrscan --- .../main/java/com/ouxuan/oxface/DebugActivity.java | 9 ++++++++- .../serialportlibrary/SerialPortManager.java | 23 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java index aff67e0..3162966 100644 --- a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java @@ -35,7 +35,7 @@ import com.ouxuan.oxface.utils.VenueSceneUtils; import java.io.File; import java.util.Date; -public class DebugActivity extends Activity { +public class DebugActivity extends Activity implements com.kongqw.serialportlibrary.SerialPortManager.OnQrDataListener { private static final String TAG = "DebugActivity"; private TextView tvLogOutput; @@ -1044,6 +1044,7 @@ public class DebugActivity extends Activity { logMessage("启动扫码器测试..."); try { com.kongqw.serialportlibrary.SerialPortManager serialPortManager = new com.kongqw.serialportlibrary.SerialPortManager(); + serialPortManager.setOnQrDataListener(this); serialPortManager.x9_serialport_qr(); logMessage("扫码器测试已启动,请扫描二维码,数据将输出到日志"); showToast("扫码器测试已启动"); @@ -1053,4 +1054,10 @@ public class DebugActivity extends Activity { showToast("启动扫码器测试失败"); } } + + @Override + public void onQrDataReceived(String qrData) { + logMessage("扫码器接收到数据: " + qrData); + Log.d(TAG, "QR Data received: " + qrData); + } } \ No newline at end of file diff --git a/lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java b/lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java index 0c41200..1273a8e 100644 --- a/lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java +++ b/lib-serialport/src/main/java/com/kongqw/serialportlibrary/SerialPortManager.java @@ -34,6 +34,7 @@ public class SerialPortManager extends SerialPort { private SerialPortManager serialPortQr; private boolean isQrRuning = false; private Thread qrThread; + private OnQrDataListener mOnQrDataListener; /** * 打开串口 @@ -234,6 +235,10 @@ public class SerialPortManager extends SerialPort { if (size > 0) { final String qr = new String(buffer); Log.d(TAG, "qr data:" + qr); + // 调用回调接口 + if (mOnQrDataListener != null) { + mOnQrDataListener.onQrDataReceived(qr); + } } } } @@ -262,4 +267,22 @@ public class SerialPortManager extends SerialPort { e.printStackTrace(); } } + + /** + * 设置QR数据监听器 + * + * @param listener QR数据监听器 + * @return SerialPortManager + */ + public SerialPortManager setOnQrDataListener(OnQrDataListener listener) { + mOnQrDataListener = listener; + return this; + } + + /** + * QR数据监听器接口 + */ + public interface OnQrDataListener { + void onQrDataReceived(String qrData); + } }