IOBluetooth

RSS for tag

Gain user-space access to Bluetooth devices using IOBluetooth.

Posts under IOBluetooth tag

33 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Is it possible for CarPlay to establish a connection with a Bluetooth Low Energy (BLE) dongle when the phone app is fully closed or not running in the background?
I’m currently developing an app that communicates with a BLE dongle. When I swipe up to close the app on my phone, both the phone app and the CarPlay app are terminated. From the CarPlay interface, I can relaunch the app. My question is: Can CarPlay establish a connection with a BLE dongle when the phone app is fully closed or not running in the background?
3
1
269
Oct ’24
Bluetooth pairing problems (iPhone 16 Pro with Sony WH-1000XM5)
Upgraded from an iPhone 13 Pro Max to an iPhone 16 Pro a week ago. Both running on latest iOS 18 and data transfer was done manually Bluetooth pairing seems to be facing a problem. I have been trying to pair up with my Sony WH-1000XM5 but somehow the phone fails to detect the headphones on Bluetooth. Today I tested with my spare earbuds Bose Soundsport Wireless and faced exactly the same problem. Strange Carplay and my home JVC home player don‘t have this problem
3
1
856
Oct ’24
CBATTErrorRequestNotSupported while transferring data between Bluetooth LE devices
I am trying to implement BLE communication between installations of an iOS app and I am following Transferring Data Between Bluetooth Low Energy Devices since the data I need to transfer exceeds the 512 byte limit for attribute values. I already have this working based on an older version of the app, however after I integrated with the mainline of development I am getting CBATTErrorRequestNotSupported which seems to be caused by OSStatus 65535 (which is kBluetoothSDPErrorCodeReservedEnd, but that is documented to not even be present on iOS). So it seems that a change on our end is causing these errors, but I am completely stumped as to what change that might be. Is anyone able to enlighten me?
2
0
371
Aug ’24
How to make Bluetooth transfer rate faster
I used two iphones to transfer data via Bluetooth, and the MTU used 512 bytes.I got 56bps in withResponse mode and around 200bps in withoutResponse mode.I wonder how to achieve a faster rate.Let's say LE 1Mbps mode or LE 2Mbps mode.My central device and peripheral device are both iPhone, I don't know if there is a limit between them.My goal is just to know how can I achieve a faster rate 1、Two iphones connected to Bluetooth 2、Test separately with withoutResponse and withResponse 3、Calculate the transmission rate per second 4、In withoutResponse mode, the peripheral receives about 46 packets of 512 bytes per second 5、In withResponse mode, the peripheral receives about 13 packets of 512 bytes per second 6、So I get rates of 56bps and 200bps
1
0
425
Aug ’24
Headset button not responds in a call on my app
Hi, Team. We are currently creating a VoIP calling app using pjsip and want to be able to end a call using the headset button while the app is in the middle of a call (AVAudioSession.category == .playAndRecord), but MPRemoteCommand does not receive any events. After trying various things, We found that the button will respond if the audio output destination is set to the speaker or if .allowBluetoothA2DP is set as an option, but this is not suitable for this use case because audio input and output would be from the device rather than the headset. ================================================= Problem Headset button events cannot be received from MPRemoteCommand during a call. What is expected to happen? When the headset button is pressed during a call, a handler registered in some MPRemoteCommand is called back. What does actually happen? No MPRemoteCommand responds when the headset button is pressed during a call. Information Sample code Echoes back the audio input with a 5-second delay to simulate a phone call. https://github.com/ryu-akaike/HeadsetTalkTest-iOS/ Versions macOS: Sonoma 14.5 Xcode: 15.3 iPhone: 11 iOS: 17.5.1 ================================================= Thank you. Ryu Akaike
1
0
424
Aug ’24
Specific Bluetooth speaker issue
Are there any cases where when connected to a specific Bluetooth device on an iPhone or iPad, the Bluetooth device connected at the same time is frequently disconnected or the app connected via CoreBluetooth is disconnected? Our app connects to an iPhone or iPad and connects to CoreBluetooth API to perform specific functions or operations. When a JBL Bluetooth speaker is connected, the connection is automatically disconnected during operation. When the JBL Bluetooth speaker is disconnected, the Bluetooth connection between our apps is not disconnected. It does not happen on all iPhones or iPads, but it seems to happen on some devices. Our app users are experiencing this issue with JBL Bluetooth speakers. So we are trying to replicate this phenomenon with our Bluetooth speaker, but it doesn't work. Has anyone else experienced something similar? I am wondering if this phenomenon can occur.
0
0
371
Jul ’24
Bluetooth — Peripheral Won't Appear in Bluetooth Settings Menu
Xcode 15.3 macOS Sonoma 14.5 I'm trying to build an app for macOS that will emulate a HID device (keyboard, mouse, game controller) and send those inputs to an IOS device over Bluetooth. I've figured out how to map the inputs from the relevant documentation (Human Interface Device Profile 1.1, Apple Accessory Design Guidelines) but I can't seem to get the Bluetooth services working. I've found an example of how to implement the Bluetooth service (from macOS Mojave but updated to Swift 5). The code will build without issue and asks for the necessary permissions in settings. After giving permissions and rebuilding, the peripheral simply does not appear on the iPhone Bluetooth settings menu (or the Bluetooth settings menu of any device). I suppose the question I'm asking here is if macOS Sonoma prevents the macOS device from advertising as a keyboard peripheral. Furthermore, is there any documentation that describes these limitations. Here is the full example code (too large to post): https://github.com/MonoidMusician/Bluetooth-Keyboard-Emulator/blob/master/Keyboard%20Connect%20Open%20Source/BTKeyboard.swift
1
0
382
Jun ’24
iPhone and iPad Collaboration
Hello, I'm building apps for iPhone and iPad. Those are working together like a 2-screen Nintendo switch. Is there any way for communication between iPhone and iPad without an outside server? PAN(personal area network) could be a solution, but I could not find any information to use it for my case. If the iPad is connected to iPhone as a personal hotspot (though there's no cell tower), they should be communicate each other. I think there's a better way for my case. Could anyone can tell me where I start to looking for? Thanks, JJ
1
0
561
Jun ’24
Increase in Download Time from Sensors to Mobile with Recent IOS Updates
We have observed a significant increase in download time from the sensors to the mobile device after recent OS updates. We are connected to the external sensors via the BLE interface using the following connection parameters(15,15,0,6000) https://mbientlab.com/tutorials/MetaMotionRL.html: example 1.For 1 Meter with duration of 28 Seconds the IOS 17.1 taking 44 secs where as IOS 17.5.1 taking 82 secs . 2..For 1 Meter with duration of 45 Seconds the IOS 17.1 taking 74 secs where as IOS 17.5.1 taking 143 secs . Even with the same connection parameters, download times were considerably lower in iOS 15 and below devices. We are currently using the connection parameters 15, 15, 0, 6000. I have learned from some documents that the minimum connection interval was changed to 20, but when I tried it, the download time increased further. I am seeking assistance on how to achieve the same download times as the older versions. https://mbientlab.com/community/discussion/comment/11852#Comment_11852
2
0
586
Jun ’24
The infinite connection callback observed for some Bluetooth devices
Hi guys, I observed the infinite connection callback(inSelector) for some Bluetooth devices (such as an iPhone SE or Mac Mini) even when I powered off them. However, the issue is not reproducible easily. (IOBluetoothUserNotification *)registerForConnectNotifications:(id)observer selector:(SEL)inSelector ble.txt Looks like there are many -[CBManager xpcConnectionDidReceiveMsg:args:] calls when the issue occurs based on the sample, so it might be caused by the XPC connection with bluetoothd? Has anyone else experienced this issue, or any workaround for it? such as should I restart the bluetoothd?
1
0
491
May ’24
Tracking bluetooth connection from macOS to non-Apple smartphones
Hi! I am trying to figure out whether there are any ways to get notifications when a macOS user connects to another device via Bluetooth (specifically when a smartphone is paired with a MacBook). I know about IOBluetooth, but it seems like you have to send periodic queries for devices when using this framework, and there is no general way to receive such notifications. I know that IOHIDManager may help to track connection with human interface devices such as keyboards, trackpads, joysticks, etc. But is there any API in IOKit/DriverKit that could help get notifications when a macOS user connects to a smartphone? Maybe I am missing an important part of IOBluetooth, so I would appreciate any help.
0
0
522
Apr ’24
VisionOS Bluetooth usage
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?
1
0
660
Mar ’24
IOBluetooth: discovering if my (classic) bluetooth headset is "connected" to macOS
I want my program to behave differently if a specific bluetooth headset is "connected" to the system. By "connected" I mean that it is: paired with the system appears on a list of audio output in Settings (not necessarily selected as default output) appears on "My Devices" list in Bluetooth preference pane with "Connected" status. I want this to determine "availability" of the device, i.e. likehood that establishing an active connection will succeed. Apparently IOBluetooth does not offer API to easily achieve this... I've tried: [IOBluetooth pairedDevices] to iterate though paired device list. This one correctly returns IOBluetoothDevice object representing my device. When I call [IOBluetoothDevice isConnected] it returns false even though device is listed as "connected" on My Devices list in Bluetooth settings. If I leave the headset at original place, go with my mac to a physically different location and call getLastInqiuryUpdate or recentAccessDate, both return current time, even though the headset is not in range for several days now. So I'm looking to determine the headset "connected" state the same way Bluetooth Settings pane does it and without making an active connection attempt.
0
1
568
Feb ’24
watchOS 10.2 Bluetooth in the background often disconnects
My watch APP needs to keep Bluetooth connected with peripherals whether it is in the foreground or background, but the results of my test show that the connection in the background is very unstable, sometimes you can keep the Bluetooth on for a day, but sometimes it will be disconnected 50 times a day, and every time it is disconnected, I will immediately initiate a reconnection, it is certain that there is no problem with the peripheral Bluetooth, because I have another iOS device that has been stably connected to the peripheral, I want to know what causes this instability, and if there is any solution, if someone can provide relevant advice, I will be very grateful
1
0
703
Feb ’24