diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 14fd662..d5b1bc0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -79,6 +79,12 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.BLUETOOTH_OFF) { + //防止用户开始打开蓝牙搜索,中途关闭蓝牙 + try { + bleManager.cancelScan() + } catch (e: NullPointerException) { + e.printStackTrace() + } bleManager.disconnectAllDevice() SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE) binding.currentValueView.text = "--" @@ -87,15 +93,12 @@ binding.deviceModelView.text = "产品型号:未连接" binding.deviceCodeView.text = "设备编号:未连接" "设备已断开连接".show(requireContext()) - //防止用户开始打开蓝牙搜索,中途关闭蓝牙 - bleManager.cancelScan() } return true } private val kTag = "HomePageFragment" private val bleManager by lazy { BleManager.getInstance() } - private val bluetoothDevices by lazy { java.util.ArrayList() } private val latLngs = LinkedList() private lateinit var userName: String private lateinit var eventViewModel: EventViewModel @@ -358,6 +361,7 @@ }).build().show() } else { //搜索蓝牙 + val bluetoothDevices = ArrayList() bleManager.scan(object : BleScanCallback() { override fun onScanStarted(success: Boolean) { LoadingDialogHub.show(requireActivity(), "设备搜索中...") @@ -375,7 +379,8 @@ bluetoothDevices.add(it) } } - showScanResult() + + showScanResult(bluetoothDevices) } }) } @@ -404,9 +409,9 @@ }) } - private fun showScanResult() { - val array = java.util.ArrayList() - for (it in bluetoothDevices) { + private fun showScanResult(devices: ArrayList) { + val array = ArrayList() + for (it in devices) { array.add(it.name) } @@ -417,14 +422,12 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //连接点击的设备 - startConnectDevice(bluetoothDevices[position]) + startConnectDevice(devices[position]) } }).build().show() } private fun startConnectDevice(device: BleDevice) { - //只要一点击设备列表,就清空蓝牙设备列表,不然会有重复 - bluetoothDevices.clear() // 当前蓝牙设备 bleManager.connect(device, object : BleGattCallback() { override fun onStartConnect() { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt index 14fd662..d5b1bc0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/HomePageFragment.kt @@ -79,6 +79,12 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.BLUETOOTH_OFF) { + //防止用户开始打开蓝牙搜索,中途关闭蓝牙 + try { + bleManager.cancelScan() + } catch (e: NullPointerException) { + e.printStackTrace() + } bleManager.disconnectAllDevice() SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE) binding.currentValueView.text = "--" @@ -87,15 +93,12 @@ binding.deviceModelView.text = "产品型号:未连接" binding.deviceCodeView.text = "设备编号:未连接" "设备已断开连接".show(requireContext()) - //防止用户开始打开蓝牙搜索,中途关闭蓝牙 - bleManager.cancelScan() } return true } private val kTag = "HomePageFragment" private val bleManager by lazy { BleManager.getInstance() } - private val bluetoothDevices by lazy { java.util.ArrayList() } private val latLngs = LinkedList() private lateinit var userName: String private lateinit var eventViewModel: EventViewModel @@ -358,6 +361,7 @@ }).build().show() } else { //搜索蓝牙 + val bluetoothDevices = ArrayList() bleManager.scan(object : BleScanCallback() { override fun onScanStarted(success: Boolean) { LoadingDialogHub.show(requireActivity(), "设备搜索中...") @@ -375,7 +379,8 @@ bluetoothDevices.add(it) } } - showScanResult() + + showScanResult(bluetoothDevices) } }) } @@ -404,9 +409,9 @@ }) } - private fun showScanResult() { - val array = java.util.ArrayList() - for (it in bluetoothDevices) { + private fun showScanResult(devices: ArrayList) { + val array = ArrayList() + for (it in devices) { array.add(it.name) } @@ -417,14 +422,12 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //连接点击的设备 - startConnectDevice(bluetoothDevices[position]) + startConnectDevice(devices[position]) } }).build().show() } private fun startConnectDevice(device: BleDevice) { - //只要一点击设备列表,就清空蓝牙设备列表,不然会有重复 - bluetoothDevices.clear() // 当前蓝牙设备 bleManager.connect(device, object : BleGattCallback() { override fun onStartConnect() { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index 72b72dc..031525e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -73,6 +73,12 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.BLUETOOTH_OFF) { + //防止用户开始打开蓝牙搜索,中途关闭蓝牙 + try { + bleManager.cancelScan() + } catch (e: NullPointerException) { + e.printStackTrace() + } bleManager.disconnectAllDevice() SaveKeyValues.removeKey(LocaleConstant.DEVICE_CODE) binding.currentValueView.text = "--" @@ -81,15 +87,12 @@ binding.deviceModelView.text = "产品型号:未连接" binding.deviceCodeView.text = "设备编号:未连接" "设备已断开连接".show(requireContext()) - //防止用户开始打开蓝牙搜索,中途关闭蓝牙 - bleManager.cancelScan() } return true } private val kTag = "HomePageFragment" private val bleManager by lazy { BleManager.getInstance() } - private val bluetoothDevices by lazy { ArrayList() } private val latLngs = LinkedList() private lateinit var aMap: AMap private lateinit var writeUuid: String @@ -309,6 +312,7 @@ }).build().show() } else { //搜索蓝牙 + val bluetoothDevices = ArrayList() bleManager.scan(object : BleScanCallback() { override fun onScanStarted(success: Boolean) { LoadingDialogHub.show(requireActivity(), "设备搜索中...") @@ -326,7 +330,8 @@ bluetoothDevices.add(it) } } - showScanResult() + + showScanResult(bluetoothDevices) } }) } @@ -355,9 +360,9 @@ }) } - private fun showScanResult() { + private fun showScanResult(devices: ArrayList) { val array = ArrayList() - for (it in bluetoothDevices) { + for (it in devices) { array.add(it.name) } @@ -368,14 +373,12 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //连接点击的设备 - startConnectDevice(bluetoothDevices[position]) + startConnectDevice(devices[position]) } }).build().show() } private fun startConnectDevice(device: BleDevice) { - //只要一点击设备列表,就清空蓝牙设备列表,不然会有重复 - bluetoothDevices.clear() // 当前蓝牙设备 bleManager.connect(device, object : BleGattCallback() { override fun onStartConnect() {