From bb1c67ed43e58f05e0ef9a4b15de72f69089133f Mon Sep 17 00:00:00 2001 From: JoeAllen <2494136784@qq.com> Date: Mon, 7 Jul 2025 17:46:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20=E4=BC=98=E5=8C=96=E8=AF=BB?= =?UTF-8?q?=E5=8D=A1=E6=B5=81=E7=A8=8B=E5=B9=B6=E5=A4=84=E7=90=86=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 TAG 名称为 ReadCardActivity - 增加对 mBluetoothController 的空检查 - 在连接蓝牙设备前添加延迟 - 修改 finish() 为 mBluetoothController.stopTrade() 以正确结束交易 - 在 onStopTradeSuccess() 中添加 finish() 以关闭活动 --- .idea/misc.xml | 1 - .../i9_bl_test/ReadCardActivity.java | 21 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 74dd639..b2c751a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/java/com/serverapk/i9_bl_test/ReadCardActivity.java b/app/src/main/java/com/serverapk/i9_bl_test/ReadCardActivity.java index 76f467b..229ece2 100644 --- a/app/src/main/java/com/serverapk/i9_bl_test/ReadCardActivity.java +++ b/app/src/main/java/com/serverapk/i9_bl_test/ReadCardActivity.java @@ -44,7 +44,7 @@ import java.util.concurrent.TimeUnit; * @author JoeAllen */ public class ReadCardActivity extends AppCompatActivity { - private static final String TAG = "MainActivity"; + private static final String TAG = "ReadCardActivity"; public String errMsg, readerErrMsg, mac, tusn, appVersion, kernelVersion, tradeData, money = "1", countryCode = "0702", currencyCode = "0702", cardNum; Handler handler = new Handler(Looper.getMainLooper()); private BluetoothAdapter mBluetoothAdapter; @@ -80,6 +80,9 @@ public class ReadCardActivity extends AppCompatActivity { Log.d(TAG, "tradeDataStr: " + tradeDataStr); + if(mBluetoothController==null){ + return; + } mBluetoothController.startEmvProcess(50, Util.HexToBin(tradeDataStr.toString())); } catch (Exception e) { @@ -106,7 +109,7 @@ public class ReadCardActivity extends AppCompatActivity { mBluetoothLeService = ((BluetoothLeService.LocalBinder) service).getService(); if (!mBluetoothLeService.initialize()) { Log.e(TAG, "无法初始化蓝牙"); - finish(); + mBluetoothController.stopTrade(); return; } @@ -116,6 +119,11 @@ public class ReadCardActivity extends AppCompatActivity { public void connected() { isConnected = true; Log.d(TAG, "connected1=========="); + try { + Thread.sleep(200); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } beginReadCard(); } @@ -141,7 +149,7 @@ public class ReadCardActivity extends AppCompatActivity { mBluetoothController.connectDevice(mac); } else { Log.e(TAG, "初始化 mBluetoothController 失败"); - finish(); + mBluetoothController.stopTrade(); } } @@ -199,7 +207,10 @@ public class ReadCardActivity extends AppCompatActivity { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); - findViewById(R.id.test).setOnClickListener(v -> finish()); + findViewById(R.id.test).setOnClickListener(v -> { + + mBluetoothController.stopTrade(); + }); final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE); @@ -586,6 +597,7 @@ public class ReadCardActivity extends AppCompatActivity { @Override public void onStopTradeSuccess() { Log.e(TAG, "onStopTradeSuccess"); + finish(); } @Override @@ -622,6 +634,7 @@ public class ReadCardActivity extends AppCompatActivity { super.onDestroy(); try { handler.removeCallbacks(readRunnable); + unbindService(mServiceConnection); if (mBluetoothLeService != null) { mBluetoothLeService.disconnect();