Closed DaBs closed 5 years ago
Which version of Android are you using ? Are you using a particular framework on top of the Android APIs ?
My current tablet is running Android 8, I am using https://github.com/Polidea/RxAndroidBle.
My JS code runs on Mojave 10.14.2, no problem - except when writing quickly on the characteristic (see #1)
If you have a small repro in how you're adding "on-the-fly", I'll take a look when I get a chance. Nothing comes to mind why it'd be an issue though :(
@saiimons Exact same framework, and Android 9 (Pie) on a OnePlus 5T. I'm seeing the services fine on iOS (Using Rx there as well), so I'll try to reproduce in a separate repo
I don't have a (modern enough) Android device to test this on so I'm not sure how much help I'll be able to be here, sorry. Hope you folks can figure it out though, and I'll take a look through any repro you've got!
OK, after testing on a colleagues device, I've found the issue to be in relation to the bonding information. Since the device has previously been bonded before the macOS update, there seems to be some mismatch between the client's bond information and / or service information and the actual information being broadcast by BLENO. The solution turned out to be to "forget" bonding information, whereafter the issue practically resolved itself. Thank you for the quick response, however!
Since updating to 10.14.2, I haven't been able to see any services or characteristics, although I can connect to the device just fine. Seeing as this was not the issue with 10.14.1, I'm suspecting some change in how CoreBluetooth handles adding services "on-the-fly". I'm investigating it as well, but any pointers to where to start would be greatly appreciated.
It seems that this only affects Android for now.
EDIT: It turned out to be due to mismatched bonding information. This can be avoided by forgetting the previous bonding information. It's going to be interesting seeing if this issue persists with the next macOS update.