iOS10 didDiscoverPeripheral misses - ios

I have two iPhones side by side running same version of my app. One iPhone is updated to iOS 10, the other is iOS 9.2. I have a Bluetooth LE device transmitting non-connectable broadcast advertisements. The iOS 10 iPhone fails to detect ~30% of the adverts (failure to invoke didDiscoverPeripheral).
For several versions of iOS, have had no problem. Has iOS 10 Core Bluetooth broken something?
Thx, Dave

The issue can be resolved by powering cycling the phone, or resetting network connections.

Related

iOS 11 random disconnection with external bluetooth device

I use CoreBluetooth framework to connect external bluetooth device, in all iOS don't have random disconnection, but on iOS 11 it disconnect.
Maybe some one has any idea what's wrong with ios 11 and corebluetooth, CBCentralManager?
My app worked disconnected every 5 minutes on iOS 11.0.x,(I'm sorry for the correct version), But in iOS 10 or eralier version is OK. So I try to change the peripheral deviece, change a Android phone to test, both of them are running OK.
Then I update the version to iOS 11.1.1, And the BUG looks like to be FIXed.
Your bluetooth device is disconnected when your iphone/ipad goes to sleep. This is due to iOS 11 is requiring all application to add background mode to their info.plist. Look at screenshot provided below, add it to your app's info.plist and that will resolve your iOS 11 randomly disconnect issue when device goes to sleep.

Bluetooth on macOS is much much slower than iOS?

I am working on Bluetooth LE using CoreBluetooth on macOS. The app (master) will listen to a characteristic notification from Bluetooth device (slave). And I see that, the macOS only receives 2 packets per second, while the same processing code running on iOS receives about 30 packets per second! I did use other tools for logging and get the same result.
– On iOS, I use the LightBlue Explorer:
– On macOS, I use the Hardware IO tools for Xcode:
My testing devices are:
iOS: iPad Air running iOS 10.2.1
macOS: Macbook pro 2015 running
macOS 10.12.3
So, the bluetooth on macOS is much much slower than iOS, is that true?
Thank you,
Minh
Edited on April 7, 2017:
I think I know where the problem comes from. I tried with Apple Magic Mouse 2 and the bluetooth throughput is about 2KB/s. Then, I configured my slave device with HID services. Now, my MBP can pair with the device and the bluetooth throughput is high. So I think that the unpaired bluetooth signal was filtered by the macOS. Please check this link for the supported profiles.

After Bluetooth OTA update, I can re-pair on iOS 9.2 phones but it won't work on iOS 9.3 phones

I have an app that uses BLE to connect to a wearable device. I can update the firmware of the device via OTA. After the OTA process I can get re-paired to the wearable by calling connectPeripheral on the Central Manager. This works fine on iOS 9.2.
However, I have tested the same app on a phone with iOS 9.3 and doing the same thing causes problems. Instead of receiving one pairing request I get a lot of them. If I press pair or cancel, a new pairing request pop-up shows up. Eventually the pop-ups stop but the device isn't even paired to the app after.
Was there a change in iOS 9.3 that could be causing this? Anyone seen this behavior?
The bluetooth chip in the wearable device is a Bluegiga BLE113.

iOS 7.1 update breaks External Accesory inputStream UART read ability

We have MFI approved accessory device. Our protocol assumes continuous readings from accessory in UART mode. It was working perfect before iOS 7.1, but after testing on the iOS 7.1 it is not working properly.
In ATS test suite log we can see success eap records and some AccessoryDataTransfer acked by iPhone.
We can reproduce problem using EADemo. EADSessionController stops read data after some show/close cycles.
Only killing EADemo and relaunch allows us read some data.
Configuration:
iPhone 4 and newer (iOS 7.0), any iPod (iOS 6.x) - OK
iPhone 4s, iPhone 5 (iOS7.1) - Failed
What happens with EA framework in iOS 7.1?
Apple just released update 7.1.2 claiming they solved the issue.
"• Fixes a bug with data transfer for some 3rd party accessories, including bar code scanners"*

Bluetooth Low Energy app failed to write characteristics on iOS 7

I have a Bluetooth Low Energy (BLE) app that communicates with a BLE device through open connection. I am using CoreBluetooth library. After I upgraded my iPhone to iOS 7 and XCode to XCode 5. I recompiled my Bluetooth Low Energy app and found it no longer working. The connection is successful. The services and characteristics are discovered with no problems. Even the reading of the characteristics seems fine. But writing to a characteristic which should trigger some action on the BLE device has not any effect.
If I use XCode to download the same app to another iPhone with iOS 6, everything works fine. So I can determine the problem may be something with iOS 7 instead of XCode 5’s recompiling. It’s also possible XCode 5 prepares a different app for iOS 6 device even from a same project because I can see the app’s appearances are different on two devices.
So what’s changed from iOS 6 to iOS 7 that makes writing to characteristics failed?
I ran into the same problem, the issue is with the the firmware not your iOS Code. iOS6 was more relaxed with the characteristics types, but iOS7 is more stringent.
The WriteWithoutResponse flag for the Characteristic has to set explicitly to work with iOS7
I had used RedBear's Biscuit for Arduino at my startup to test our product, which worked wonderfully with iOS6 but when the app migrated to iOS7, the writes would fail quietly.
More detailed discussion is here (see update from Mattj949) # https://redbearlab.zendesk.com/entries/25031402-BLE-Mini-and-iOS-7
There are some Apple Threads on this issue, http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00046.html and http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00050.html

Resources