dotintent / FlutterBleLib

Bluetooth Low Energy library for Flutter with support for simulating peripherals
Apache License 2.0
536 stars 197 forks source link

overflowServiceUuids property not working ? #473

Open HeikoMueller opened 4 years ago

HeikoMueller commented 4 years ago

If I scan for a a list of service UUIDs, I am receiving the matching service UUID in the scan result's advertisementData.serviceUuids list. However, if the advertising peripheral is an iOS device that is currently advertising in background mode, I do not see the detected service UUID in the advertisementData.serviceUuids list. I understood from the API that in this case I can find it in the overflowServiceUuids property of the result, but also this remains null. Is this expected behavior ?

This might be related to my question raised in #472

flutter_ble_lib: ^2.2.4 on iPad iOS 13.4.1, peripheral device iPhone iOS 13.4.1 [✓] Flutter (Channel stable, v1.17.0, on Mac OS X 10.15.4 19E287, locale de-DE) [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2) [✓] Xcode - develop for iOS and macOS (Xcode 11.4.1) [✓] Android Studio (version 3.6) [✓] VS Code (version 1.45.1) [✓] Connected device (2 available)

mikolak commented 4 years ago

As far as I can tell they should still be under serviceUuids, I think? https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518937-centralmanager https://developer.apple.com/documentation/corebluetooth/cbperipheralmanager/1393252-startadvertising

Perhaps there's some issue with translating uuid from Flutter to iOS. Could you: 1) set logs to verbose and run the app from XCode (flutter console doesn't print native iOS logs, don't know why) 2) set a few breakpoints in XCode and make sure your UUIDs are correct when passed to the CentralManager?