btleplug icon indicating copy to clipboard operation
btleplug copied to clipboard

Wrong peripheral name on macOS

Open Massimiliano-solutiontech opened this issue 2 years ago • 5 comments

Describe the bug properties.local_name doesn't have the correct name because macOS caches the names

Expected behavior Have the correct advertised name

Actual behavior Returning the cached named

Additional context Below the Swift code working on iOS, iPadOS, but I didn't tested it on macOS

https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518937-centralmanager

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String: Any], rssi RSSI: NSNumber) {
    guard let name = advertisementData["kCBAdvDataLocalName"] as? String else { return }
}

I have experience with Swift and iOS development, if you need help to implement that I'll be happy to do so

Any news on that?

I've implemented this and checked if the advertisement data contains the LocalName but no luck. Connecting to the device upon discovery seems to solve this issue.

Apple forums and GH link regarding this bug:
https://developer.apple.com/forums/thread/654654 https://github.com/ChrisMarshallNY/TestCBIssue

gmallios avatar Mar 07 '24 18:03 gmallios

Having the same issue, the fix by @Massimiliano-solutiontech has helped. In my case kCBAdvDataLocalName contained a far more descriptive name.

Specifically, my treadmill is displayed as "LifeSpan-TM-2000" when scanning on Windows with btleplug/nrfconnect on Android. However, on macOS 14.5 it's displayed as "ESP32".

I'm not sure what's the most appropriate fix would be, since exposing a new field in a Peripheral for all platforms would likely be an overkill, but I guess we can merge names on macOS If both fields are present?

yuyoyuppe avatar Jun 06 '24 11:06 yuyoyuppe

I think I'll be fine merging them, but I'll have to try them in my own library and see what it does.

qdot avatar Jun 06 '24 18:06 qdot

@qdot rebased against dev.

yuyoyuppe avatar Jun 06 '24 19:06 yuyoyuppe