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();