Skip to content

Commit 213b4c5

Browse files
committed
Fix Bluetooth Manager close all bug
1 parent ec5ef2b commit 213b4c5

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

androidBluetoothSerial/src/main/java/com/harrysoft/androidbluetoothserial/BluetoothManager.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
import android.util.ArrayMap;
77

88
import java.io.Closeable;
9+
import java.io.InputStream;
10+
import java.io.StringWriter;
11+
import java.io.Writer;
912
import java.util.ArrayList;
13+
import java.util.Iterator;
1014
import java.util.List;
1115
import java.util.Map;
1216
import java.util.UUID;
@@ -118,10 +122,12 @@ public void closeDevice(SimpleBluetoothDeviceInterface deviceInterface) {
118122
*/
119123
@Override
120124
public void close() {
121-
for (Map.Entry<String, BluetoothSerialDevice> d : devices.entrySet()) {
125+
for (Iterator<Map.Entry<String, BluetoothSerialDevice>> iterator = devices.entrySet().iterator(); iterator.hasNext();) {
126+
Map.Entry<String, BluetoothSerialDevice> deviceEntry = iterator.next();
122127
try {
123-
d.getValue().close();
124-
} catch (Exception ignored) {}
128+
deviceEntry.getValue().close();
129+
} catch (Throwable ignored) {}
130+
iterator.remove();
125131
}
126132
}
127133
}

0 commit comments

Comments
 (0)