-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iOS 16.4.1 - scan not returning a local name #527
Comments
Here is some additional information. We have a default device name - 'Hickory'. This is currently what is appearing after a scan with the plugin in our app with iOS 16.4.1. We set the local name to the serial number of the device. This serial number is what has been displayed after a scan with the plugin in prior iOS versions. When I use a "generic" Bluetooth app (Light Blue) on an Apple device I get the following: As you can see it has a serial number in the local name. This is the expected behavior. If I set a breakpoint in Xcode within the plugin's getScanResult() function I get "nil" as the result of the local name, not the serial number - 2619W0589 I get with the generic Bluetooth app. If I use an Apple device with an older version of iOS I get the correct local name 2619W0589: Any insight as to what can be done to get this functionality working as before? Thanks, Brent |
I had posted to several forums. about this. One suggestion was to add scan option - allowDuplicates.
It works, though you get duplicates as per the flag. Not sure why this would work? |
I can confirm that I see this issue on some devices, but not others. I think it might be related to how iOS caches BLE Devices. On iPhones that had scanned the BLE device before I do not have this issue (and #528). The issue only occurred on devices that did scan the device for the first time. |
Its been a while and a release (3.1.1) any update on this? |
We had a similar issue pop up where a renamed device wouldn't appear in a name-filtered scan. We were able to reproduce it by connecting to a device for the first time, renaming the device, and then attempt to connect to it again. Seemed linked to the cache, like you suggested. Clearing it fixed the issue. We did it via some other app that inadvertently cleared it when scanning for devices. Edit: Followed a few thread chains, and stumbled across this apple dev forum post with a response here that explains it a little better. TL;DR is there's 2 places the localname can be - advertisement and in the device's GAP. It isn't guaranteed to be in the advertisement, so |
I've found this issue too and I fixed it. On iOS 16.4.1+ you should check for So, in your code (let's say you are doing a condition based on the name), you should write this:
|
Are you able to grab the raw advertising payload using nrf Connect on Android, to confirm which flags and the GAP name being communicated here? This sounds like the distinction between the GAP name and the advertised name. This link posted by @manncr is worth reading through. |
After updating an iPhone to 16.4.1, which was released a couple of weeks ago, I noticed that after performing a scan that the scan is not returning a local name.
Is anyone else seeing this issue?
The text was updated successfully, but these errors were encountered: