Posts

Post not yet marked as solved
1 Replies
862 Views
I'm trying to use the iOS 13 introduced capability in CoreBluetooth to do GATT over BR/EDR. The accessory I'm using obviously implements GATT over BR/EDR (it even publishes its services using SDP). According to the session WWDC 2019 What's New in Core Bluetooth session, we have to use the registerForConnectionEvents API on a CBCentralManager instance, providing services UUIDs (CBUUIDs) that will be available to use on the BR/EDR accessory. In the session, they explicitly say: Your app will have instantiated a CBCentralManager, passed us a known service UID, and in the case of a BR/EDR or classic device, your user will go to the Bluetooth settings and search for the device, in this case let's say it's a headset running heart rate. They'll discover the device, find it, and attempt to connect. Pairing will be triggered, and then afterwards when we're connected, we'll run a service discovery of the GATT services. If we find a service that you want, then you'll get the delegate callback. So when doing a manual connection in the Settings app to the accessory, iOS does a GATT service discovery and if it matches, we receive an associated connectionEventDidOccur delegate callback with the event peerConnected and the associated CBPeripheral. However, this delegate callback never happens. I'm using the UsingCoreBluetoothClassic sample from Apple, with custom service CBUUIDs implemented by my accessory. I did multiple attempts: providing only one service CBUUID, severals CBUUIDs, none, generic ones, very specific ones... It never fires. Note that on Android, it seems to work: connection is possible using the MAC address directly, and a service discovery using SDP lists the accessory services. Also note that the event fires when I'm scanning using scanForPeripherals and connect to my accessory (because my accessory also does GATT over BLE, but for specific reasons we explicitly want to perform GATT over BR/EDR). Is there something I have to do on the accessory that I probably missed ? Thanks for your help!
Posted Last updated
.
Post not yet marked as solved
4 Replies
912 Views
Hello, Like a lot of developers here, I tested my app on iOS14 and noticed the new local network privacy system alert when my app just launched. We make a companion app for smart speakers and we use our own protocols to communicate with those, making the alert appear automatically. Since those protocols are low level, is there a simple to use API that allow to control when we want to make appear this alert and know explicitly if the user denies the access ? Thanks
Posted Last updated
.
Post marked as solved
2 Replies
795 Views
Hello,We're updating our app to iOS 13 and we are using CBPeripheralManager.We obviously did add the NSBluetoothPeripheralUsageDescription in our Info.plist.We know that now, a system modal asking for the permission to scan Bluetooth devices will appear if we try to access a sensitive property.If the user refuses, then our app will redirect the user if needed in our app's settings pane in the Settings app where the user can enable if he wants the Bluetooth Sharing toggle.However, I noticed that our app gets killed when the toggle is switched on/off. LLDB is terminated due to signal 9 and when I get back to my app, my splashscreen gets displayed and it goes to our bootstrap process like any normal launch.Our test phone is an iPhone 6S running iOS 13 beta 5 released a few hours ago (it was also happening running beta 4).Is it expected behavior ? I don't think so but that's why I'm asking.Thanks for your help!
Posted Last updated
.