From 130b83c91a23f02b8ff4a6fe805c8c8acc1d7b7d Mon Sep 17 00:00:00 2001 From: Kavish Devar Date: Mon, 6 Jan 2025 14:26:13 +0530 Subject: [PATCH] fetch service UUIDs before checking UUIDs of a bluetooth device when starting service --- .../aln/services/AirPodsService.kt | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/android/app/src/main/java/me/kavishdevar/aln/services/AirPodsService.kt b/android/app/src/main/java/me/kavishdevar/aln/services/AirPodsService.kt index 7272fa5..cfdd695 100644 --- a/android/app/src/main/java/me/kavishdevar/aln/services/AirPodsService.kt +++ b/android/app/src/main/java/me/kavishdevar/aln/services/AirPodsService.kt @@ -319,23 +319,31 @@ class AirPodsService: Service() { val bluetoothAdapter = getSystemService(BluetoothManager::class.java).adapter bluetoothAdapter.bondedDevices.forEach { device -> - if (device.uuids.contains(ParcelUuid.fromString("74ec2172-0bad-4d01-8f77-997b2be0722a"))) { - bluetoothAdapter.getProfileProxy(this, object : BluetoothProfile.ServiceListener { - override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) { - if (profile == BluetoothProfile.A2DP) { - val connectedDevices = proxy.connectedDevices - if (connectedDevices.isNotEmpty()) { - connectToSocket(device) - this@AirPodsService.sendBroadcast( - Intent(AirPodsNotifications.Companion.AIRPODS_CONNECTED) - ) + device.fetchUuidsWithSdp() + if (device.uuids != null) + { + if (device.uuids.contains(ParcelUuid.fromString("74ec2172-0bad-4d01-8f77-997b2be0722a"))) { + bluetoothAdapter.getProfileProxy( + this, + object : BluetoothProfile.ServiceListener { + override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) { + if (profile == BluetoothProfile.A2DP) { + val connectedDevices = proxy.connectedDevices + if (connectedDevices.isNotEmpty()) { + connectToSocket(device) + this@AirPodsService.sendBroadcast( + Intent(AirPodsNotifications.Companion.AIRPODS_CONNECTED) + ) + } + } + bluetoothAdapter.closeProfileProxy(profile, proxy) } - } - bluetoothAdapter.closeProfileProxy(profile, proxy) - } - override fun onServiceDisconnected(profile: Int) { } - }, BluetoothProfile.A2DP) + override fun onServiceDisconnected(profile: Int) {} + }, + BluetoothProfile.A2DP + ) + } } }