Core Bluetooth

RSS for tag

Communicate with Bluetooth 4.0 low energy devices using Core Bluetooth.

Core Bluetooth Documentation

Posts under Core Bluetooth tag

175 Posts
Sort by:
Post not yet marked as solved
4 Replies
410 Views
Using CoreBluetooth I am getting these values from CBCentralManagerDelegate's didDiscover peripheral delegate method: kCBAdvDataTxPowerLevel: 12 (could be other number like 7, 0 or a small negative number) This one is taken from advertisementData parameter. This key might be absent. rssi: -68 (or -60, -100, etc) this is taken from the "rssi" parameter (always present). I am looking for a formula to calculate approximate distance based on these two numbers. Is that possible? I know that ideally I need to know rssi0 (rssi at 1 meter), but I don't see how I can get that via CoreBluetooth API or other means (without actually measuring rssi at one meter distance which is not good for me). How could I approximate rssi0 value with "kCBAdvDataTxPowerLevel"?
Posted Last updated
.
Post not yet marked as solved
1 Replies
274 Views
Hi! I have previously developed an app that established a Bluetooth connection between two devices (two iPads). Now, I want to port the client-side app to VisionPro. Similar to the iPad app, I have supplemented my info.plist file with the following line: NSBluetoothAlwaysUsageDescription Uses BLE to communicate with devices. Despite this, when I launch the app on VisionPro, the prompt to use Bluetooth does not appear. What could be the issue? What additional settings do I need to configure to enable Bluetooth usage?
Posted
by ateszra.
Last updated
.
Post not yet marked as solved
0 Replies
292 Views
I managed to get the entry/exit for beacon region on >iOS 17.0 to <=iOS 17.1.2, but it doesn't work at all on latest iOS version 17.3.1. I have tried the new addition in iOS 17.2, assuming unmonitored as well but still no result. I'm using the sample code provided by apple, https://developer.apple.com/documentation/corelocation/monitoring_location_changes_with_core_location. Please guide.
Posted Last updated
.
Post not yet marked as solved
0 Replies
176 Views
Hi, we're having trouble with a device that changes its services to do firmware updates and does not implement the Service Changed characteristic. I understand that the iPhone caches the services, is it possible to clear this cache, or is it known how long does it last? We unfortunately cannot reset the iPhone as I've seen suggested, as this is the users' phone I'm talking about. Thanks
Posted
by disoteo.
Last updated
.
Post not yet marked as solved
0 Replies
215 Views
Hi, My app allows to connect to a bluetooth device. If the user has multiple devices he can connect all of them simultaneously, the app UI is presenting a list of all paired device. If the user open the phone bluetooth settings and forget one of the paired device, I would like to also remove it from the list of paired devices in displayed in my application. I was expecting CBCentralManager.retrievePeripherals(withIdentifiers:) to return nil if the device has been removed in the bluetooth setting but this function still return a device. Is there another solution to do that ? Thanks
Posted Last updated
.
Post marked as solved
3 Replies
325 Views
Where's CBAdvDataManufacturerData format documented? It looks like there's the company code stored in little endian order in the first two bytes (referencing the companies found in company_identifiers.yaml on bluetooth site). And the rest is arbitrary? I'd like to see the official documentation about this. Thank you.
Posted Last updated
.
Post not yet marked as solved
0 Replies
195 Views
We plan to use “AVFoundation” framework, and fetch current route of .bluetoothA2DP by using AVAudioSession.sharedInstance().currentRoute.outputs to get uid of our audio headset. Then, compare audio port, uid with the one advertised in BLE manufacturer data by using CoreBluetooth framework to ensure connected audio device. Does anyone have experience of using this method in your app that works with Bluetooth audio devices?
Posted
by nay81.
Last updated
.
Post not yet marked as solved
0 Replies
317 Views
I am trying to write to a characteristic and I know that it needs to be paired via a pin/passcode in order to initiate transfer of data. But it only pairs with 'just works' method and does not allow for transfer for data. Is connecting possible with pin/passcode via BLE on TVOS? Seems like it's not.
Posted
by JSyquia.
Last updated
.
Post not yet marked as solved
1 Replies
364 Views
Hi, I am developing a service that reads data from wearable devices. It should launch the scheduler every 15 min, but however sometimes there is a delay of 1 - 5 minutes, there are days that the scheduler does not run between 23:00 to 7 am, I am using BGAppRefreshTaskRequest. Can someone give me a hand?
Posted Last updated
.
Post not yet marked as solved
0 Replies
321 Views
hi everyone. im new to xcode and wondering if anyone has any idea for what to do when your initial view controller keeps showing a black screen. ive done the following ensured Main storyboard file base name in info.pl is set to my storyboard. also under application scene manifest --&gt; scene configurations --&gt; application session role --&gt; item 0 i have storyboard name as my storyboard and delegate class name as my SceneDelegate but I keep receiving this error 2024-02-13 22:42:47.452242-0500 PROJECT-NAME[11302:838011] [SceneConfiguration] Info.plist configuration "(no name)" for UIWindowSceneSessionRoleApplication contained UISceneDelegateClassName key, but could not load class with name "SceneDelegate". 2024-02-13 22:42:47.452641-0500 PROJECT-NAME[11302:838011] [SceneConfiguration] Info.plist configuration "(no name)" for UIWindowSceneSessionRoleApplication contained UISceneDelegateClassName key, but could not load class with name "SceneDelegate". 2024-02-13 22:42:47.456532-0500 PROJECT-NAME[11302:838011] [WindowScene] There is no scene delegate set. A scene delegate class must be specified to use a main storyboard file. the initial view controller box is checked for the correct controller (HomePageController) ive added print statements to my viewDidLoad() in my HomePageController (i guess one weird thing is that i cant set 'main interface' to my main storyboard in the deployment info section) im really not sure what else to do, and any help would be really appreciated. im a beginner so all of this is a bit difficult. this is my info.pl file: https://drive.google.com/file/d/1W-KOH3BjqgfJf10n9LM5bRTYHXQYM9ER/view?usp=sharing
Posted
by chiadika.
Last updated
.
Post not yet marked as solved
2 Replies
253 Views
We do have an app where we try to connect via BLE to our own hardware. To trigger the pairing process we attempt a read operation on an encrypted characteristic. If the devices are note paired/bonded yet we do receive the expected CBATTErrorInsufficientEncryption Error and the native alert opens to enter the PIN. If the native pairing alert is now canceled 2-3 times the native alert will not be shown for any attempt afterwards unless I wait around 3 minutes. Is there a certain timeout for BLE devices when the system shows the pairing alert again in case it failed multiple times? I didn't find anything in that regard in the documentation.
Posted
by KroegD.
Last updated
.
Post not yet marked as solved
2 Replies
536 Views
Currently working on an emergency app paired with a BLE device, and the desired use case is: When the device is triggered, it sends your location to your emergency contacts an API we've built. This flow works while the app is open, but we need things to obviously work while in background (while the phone is sleeping as well, of course, for emergency contexts) From what I've researched and understood, background fetches don't really work, because the intervals are a maximum of about 15 minutes, and iOS will make them less frequent based on app usage, and that window in an emergency situation isn't good enough. Having read around, I've bumped into a couple resources that suggest background bluetooth processing is possible, if I listen for a particular service being advertised, but I haven't been able to make things work so far. I wanted some help on this.
Posted
by JoaoNM.
Last updated
.
Post not yet marked as solved
1 Replies
427 Views
I have an app to communicate with a peripheral via L2CAP channel. Even I already enabled "Uses Bluetooth LE accessories" in "Background Mode", it still stop working when I lock the screen. Did some search and found these two posts: CBL2CAPChannel not responsive while app is backgrounded iOS Swift CoreBluetooth CBL2CAPChannel L2CAP Channel Oriented Connection Cannot Reconnect After Close From Central I am wondering if there are any solutions or work around about this. Based on the use case, I prefer to use L2CAP to transfer large data between two devices, so won't consider GATT.
Posted
by stonezhl.
Last updated
.
Post not yet marked as solved
2 Replies
347 Views
Hi Team, 

I am developing a sample authPluggin which should connect to a mobile app via bluetooth connection, 
So here are the scenario

 Authplugin with Bluetooth connection shoould work on lockscreen+login 

I have created mechanism- prepared:privillaged, main, clean:Privilaged Calling corebluetoothmanager initiation at the time of prepared:privilaged mechanism I have to add my auth plugin’s mechanism before loginwindow:success mechanism

 But I always gets unauthorized = 3, from power state of bluetooth

 Note: With App, bluetooth connection is working fine, Its giving error with authPlugin How to achieve my ultimate goal, is this the right way?
Posted Last updated
.
Post not yet marked as solved
1 Replies
437 Views
Hi, I'm working on an SPM library that uses CoreBluetooth. Since I need to work with Bluetooth in background, I've set CBCentralManagerOptionRestoreIdentifierKey option to my instance of CBCentralManager. When I run the unit tests I encounter the following exception: Thread 1: "State restoration of CBCentralManager is only allowed for applications that have specified the "bluetooth-central" background mode" Of course, my demo application that I use to test the library has the bluetooth-central background mode checked. I think the issue is related to the fact that when the test target is executed, there is no associated application. Can background modes be applied to the package? How can this be resolved?
Posted
by andr3a88.
Last updated
.
Post marked as solved
3 Replies
528 Views
I have tried below code to open [Settings(App) -&amp;gt; Bluetooth Settings] but it is navigating to App permission screen instead of Bluetooth Settings. I have tried to search but didn't get any latest documentation regarding it. Is there any way to do this? guard let url = URL(string: UIApplication.openSettingsURLString) else { return } if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: nil) }
Posted
by Kanuga_p.
Last updated
.
Post not yet marked as solved
2 Replies
304 Views
I'm trying a Data value (1438 bytes) to write to a characteristic which exceeds the MTU size. When I issue the write request I receive .prepareQueueFull According to the documentation: "The prepare queue is full, as a result of there being too many write requests in the queue." The unfortunate thing is that on the I only call the write request once. peripheral.writeValue(data, for: characteristic, type: .withResponse) Any input and possible solution is welcome. Thank you in advance.
Posted
by sandorg.
Last updated
.
Post not yet marked as solved
1 Replies
384 Views
We are implementing indoor positioning and proximity sensing in our iOS app using iBeacons. We have placed multiple beacons to detect the proximity of one point of interest(POI). We are using the startRangingBeacons method in the CLLocationManager class and implementing corresponding delegates to receive the ranging information. With all required foreground and background permissions granted, when a user walks from one POI to another, beacon ranging is working as expected and we are continuously receiving the sightings in the app. We have observed that, if user stops walking for a few minutes at a POI and then device automatically pauses the scan. Hence, we will not receive any beacon signals. When there is a movement, it performs beacon ranging again for a minute or so, then stops again for longer time even when user is walking. The interval between the pausing and resuming the service is not a constant. We have also observed that sometimes it takes more than 15 minutes to resume the service once the system pauses the ranging automatically. Is it an expected behavior? How long does it usually take for beacon ranging services to resume after the user starts moving? Is there any way we can reduce this delay between the pause and resume of ranging beacons? Appreciate your support
Posted
by Mijesh.
Last updated
.