IOBluetooth

RSS for tag

Gain user-space access to Bluetooth devices using IOBluetooth.

IOBluetooth Documentation

Posts under IOBluetooth tag

60 Posts
Sort by:
Post not yet marked as solved
0 Replies
31 Views
One of our latest innovation and patented technology can be used in mobile devices like the Apple Watch to protect the environment from being attacked and bit by mosquitos. By modelling sensor structures this technology influences behavior patterns of mosquitoes and other insects. This allows mosquitos to be kept away without being affected. Using existing IoT hardware already available on-board, in addition to software-based algorithms, the Apple Watch could be a best fit for this application. I would appreciate if we had the opportunity to set up a personal discussion with the Apple Watch engineers.
Posted
by Andreas85.
Last updated
.
Post not yet marked as solved
1 Replies
75 Views
I’m planning on making on making a prototype of a phone case that brings back the android LED light that shines a specific color depending on notifications received by the user so you can just glance at phone. I’m wondering if there is a way to see what apps have sent notifications to the user? On a side note, would it be possible to see what apps a user has to allow LED customization? Specific apps = specific lights system.
Posted Last updated
.
Post marked as solved
57 Replies
31k Views
Hi, I am an application developer for Mac. Our application uses bluetooth to connect to our hardware devices. Since the upgrade to MacOS 12.0.1 Monterey Bluetooth is broken customer wide. Hence pairing works but our driver cannot connect (code worked for MacOS 10.7 - 11.3). The internet reports a lot of Bluetooth issues related to Broadcom BT on Monterey and the Bluetooth Framework has changed significantly by Apple. Where can I find detailed information about Apple's Bluetooth changes ? Should I just wait until Apple fixes this from their side ? Any other guidance is appreciated. Thank you?
Posted
by pkiman.
Last updated
.
Post not yet marked as solved
0 Replies
65 Views
Calling the Bluetooth GetMessage function for a message that was sent via Bluetooth, the returned BMessage contains an incorrect folder path to the message. The Event Report returns the correct folder path when the message is successfully sent. Scenario: Connect to Bluetooth MAP services (MNS and MAS). Call Bluetooth "PushMessage" function. Get 'Name Header' for the Message Handle. MAP-Event-Report received with Type of SendingSuccess and Folder equal to "telecom/msg/sent". Use "SetFolder" to navigate to Sent folder. Call "GetMessage" with the Message Handle (the handle is the same for both the event report and PushMessage function). The BMessage response has a folder of "telecom/msg/inbox" BMessage: BEGIN:BMSG VERSION:1.0 STATUS:UNREAD TYPE:SMS_GSM FOLDER:telecom/msg/inbox NOTIFICATION:1 BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:[Contact] N;CHARSET=UTF-8:[Contact] TEL:3: END:VCARD BEGIN:BENV BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:[Contact] N;CHARSET=UTF-8:[Contact] TEL:[Phone Number] END:VCARD BEGIN:BBODY CHARSET:UTF-8 LANGUAGE:UNKNOWN LENGTH:[Some Length] BEGIN:MSG iOS is the worst. END:MSG END:BBODY END:BENV END:BMSG Set Folder to telecom: 85-00-20-02-00-01-00-13-00-74-00-65-00-6C-00-65-00-63-00-6F-00-6D-00-00-4C-00-03-CB-08-60-59-D0 Set Folder to msg: 85-00-18-02-00-01-00-0B-00-6D-00-73-00-67-00-00-4C-00-03-CB-08-60-59-D0 Setting Folder to sent: 85-00-1A-02-00-01-00-0D-00-73-00-65-00-6E-00-74-00-00-4C-00-03-CB-08-60-59-D0 Calling GetMessage function: 83-00-44-01-00-23-00-44-00-33-00-42-00-43-00-34-00-45-00-39-00-31-00-30-00-35-00-41-00-41-00-34-00-43-00-32-00-00-42-00-10-78-2D-62-74-2F-6D-65-73-73-61-67-65-00-4C-00-09-14-01-01-0A-01-00-CB-08-60-59-D0 Section 3.1.4 of the Bluetooth Specification states: "telecom/msg/sent: This folder shall contain messages that were successfully sent to the network by the MSE, at least during the period of the current MAP session. In particular these messages have been queued in the 'Outbox' folder before sending and are shifted by the MSE to this folder after transmission." Apple is also nice enough to not include any additional contacts when the text message is part of a group text. This has been made unnecessarily difficult for developers to use and what's worse, it seems intentional.
Posted Last updated
.
Post not yet marked as solved
0 Replies
74 Views
All, I have an issue where my IOBluetoothDeviceInquiry and IOBluetoothDevicePair objects do not seem to be triggering all of their lifecycle states. Here is some sample code below. What am I missing here. In this example, the deviceInquiryStarted trigger never fires, even though it clearly starts and finds devices. Also devices are not added to the @Published object as they are found. Also the sender.stop() does not seem to work when coming from the delegate to stop the search. I feel like I am just missing something here as it relates to delegates. I am just looking to scan for HID devices like mice, keyboards and headsets. Then allow the user to pair the device, and list paired devices. I am pretty new to IOBluetooth so any help is appreciated. import IOBluetooth import IOBluetoothUI import SwiftUI class BluetoothSearchDelegate : NSObject, ObservableObject, IOBluetoothDeviceInquiryDelegate {          @Published var devices: [IOBluetoothDevice] = []          func deviceInquiryDeviceFound(_ sender: IOBluetoothDeviceInquiry, device: IOBluetoothDevice) {         debugPrint("********** DEVICE FOUND ************")         self.devices.append(device)     }          func deviceInquiryStarted(_ sender: IOBluetoothDeviceInquiry) {         debugPrint("inquiryStarted")     }          func deviceInquiryComplete(_ sender: IOBluetoothDeviceInquiry, error: IOReturn, aborted: Bool) {         sender.stop()         print("completed")     } } class BluetoothController: ObservableObject {          //     // DEVICE LISTS     //     @Published var devices: [IOBluetoothDevice] = []          //     // SEARCH TYPE     //     let searchType: IOBluetoothDeviceSearchTypes = kIOBluetoothDeviceSearchClassic.rawValue          //     // BLUETOOTH DEVICE     //     let btDevice: IOBluetoothDevice = IOBluetoothDevice()          //     // DELEGATES     //     let searchDelegate = BluetoothSearchDelegate()          //     // AGENTS     //     let searchAgent: IOBluetoothDeviceInquiry     let pairingAgent = IOBluetoothDevicePair()          init() {         self.searchAgent = IOBluetoothDeviceInquiry(delegate: self.searchDelegate)         self.searchAgent.searchType = self.searchType     }          func scan() {         self.searchAgent.inquiryLength = 1         self.searchAgent.start()         self.devices = self.searchDelegate.devices     }          func getPairedDevices() -> [IOBluetoothDevice] {         let devices = IOBluetoothDevice.pairedDevices() as? [IOBluetoothDevice]         debugPrint(devices ?? [])         return devices ?? []     }          func stop() {         self.searchAgent.stop()         self.devices = self.searchAgent.foundDevices() as? [IOBluetoothDevice] ?? []         self.searchAgent.clearFoundDevices()                  debugPrint("Device Count: \(self.devices.count)")     }          func pair(device: IOBluetoothDevice) -> IOBluetoothDevicePair {         self.pairingAgent.setDevice(device)         pairingAgent.start()         return pairingAgent     }          func stopPairing(pairingAgent: IOBluetoothDevicePair) {         pairingAgent.stop()     }                } struct ContentView: View {     @State var isScanning: Bool = false     @State var isPairing: Bool = false     @ObservedObject var bt = BluetoothController()          var body: some View {         VStack {             Text("Scan for bt devices").padding()             Button(action: {                 if !self.isScanning {                     self.bt.scan()                     self.isScanning.toggle()                     return                 } else {                     self.bt.stop()                     self.isScanning.toggle()                     return                 }                              }, label: {                 Text(self.isScanning ? "Stop" : "Scan")             }).padding()                          List(self.bt.searchDelegate.devices, id: \.self) { device in                 HStack {                     Text("\(device.name)")                     Spacer()                     Button(action: {                         var pairingAgent: IOBluetoothDevicePair = IOBluetoothDevicePair()                         if !self.isPairing {                             pairingAgent = bt.pair(device: device)                         } else {                             bt.stopPairing(pairingAgent: pairingAgent)                         }                     }, label: {                                                  if !self.isPairing {                             Text("Pair")                         } else {                             Text("Stop")                         }                     })                 }             }         }     } }
Posted Last updated
.
Post not yet marked as solved
0 Replies
99 Views
I was wondering if it is possible to use the bluetooth API on iPadOS to let an app become an emulated "bluetooth speaker/car". I want to make an app where an iPhone or Android phone can connect to it via bluetooth so the app can play the audio from the phone, and receive and handle calls just like a car can play audio and handle calls and display call information via bluetooth. I would also like to know if the app could also get contact information from the phone over bluetooth. If it is possible to do so, how? I would love a friendly nudge in the right direction :)
Posted
by krirogn.
Last updated
.
Post not yet marked as solved
1 Replies
117 Views
Any developer has experience in CTKD? I saw it was mentioned in WWDC 2019 (https://developer.apple.com/videos/play/wwdc2019/901), and it stated that there would be a sample project from documentation (https://developer.apple.com/documentation/corebluetooth/using_core_bluetooth_classic). But I could not find further information on it.
Posted Last updated
.
Post not yet marked as solved
0 Replies
130 Views
Hello Our app has been rejected from the app store because of 1.4 Physical Harm https://developer.apple.com/app-store/review/guidelines/#safety This app is used by the users from Kenya (Only registered users). Users can log their health based self-assessment data like blood pressure, glucose level, temperature, body weight, BMI with medical hardware devices and that will be shared with specialist (Physician or Clinical) to do the diagnosis and advice subscription accordingly. Problem: We have the above features from earlier versions but with the new version update  our app got rejected from app store stated that we have violated the app stores' guidelines (1.4.1 Physical Harm - Safety) Your app connects to external medical hardware to provide medical services. However, to be compliant with App Store Review Guideline 1.4.1, you must: Provide documentation from the appropriate regulatory organization demonstrating regulatory clearance for the medical hardware used by your app Provide documentation of a report or peer-reviewed study that demonstrates your app’s use of medical hardware works as described Our app's features: AccuCheck-Instant Glucometer: CE0088 This product fulfils the requirements of the European Directive 98/79/EC on in vitro diagnostic medical devices. b) FORA-DigitalThermometer-IR21b: CE Mark for compliance with European Directive integration over Bluetooth c) FORA-OximeterPO200: CE0123 and IEC 61000-4-3 Compliant integration over Bluetooth d) FORA-Weighing Machine-W310b: IEC/EN 61010-1, IEC/EN 61326, EN 301 489-17, EN 300 328 Compliant integration over Bluetooth e) OmronBPMachine-HEM -9210T: EC & EN Compliance integration over Bluetooth Please anyone help us to resolve this issue.
Posted
by rmehla31.
Last updated
.
Post not yet marked as solved
3 Replies
1.2k Views
I am currently working on an IOS application that pairs with a raspberry pi advertising a UART BLE service. The application successfully discovers the peripheral and attempts to connect to it. However, I keep getting a pop up window from IOS with a request to pair with the device. If I press "cancel", the app disconnects from the peripheral. If I press "pair", the peripheral connects. However, the app continues sending me pairing requests. Is this a known bug with IOS? Is there any way to get around this issue?
Posted
by Cody1233.
Last updated
.
Post not yet marked as solved
0 Replies
99 Views
Hi everyone, I am developing a virtual keyboard device connected to an iOS device by Bluetooth. And how to press any special characters by HID usage. I have tried all combinations of keys option + shift + key or option + key but there aren't any characters that I want Particularly, I want to press the character '@' in the Lithuanian language for iOS devices by Bluetooth virtual keyboard. Are there any combinations of keys to press these special characters? Dien Vu
Posted
by dienvm98.
Last updated
.
Post not yet marked as solved
3 Replies
633 Views
Iphone 12 new with bluetooth handsfree UHP, Cadillac,Opel,Saab. connect ok, receive and make calls ok, but when you will end the call, the sustem of the car turns crazy, sometimes loose conection, sometimes freeze the call on the car but it’s ended on the phone. several test done, changing configuration on the phone,with no result, The most surprising it’s thats if the person tbat makes tbe call to you end the call, everything it’s ok. same car eith iphone 11 Ios 14.1 works fine ahy thoughts about?
Posted
by Sinjikun.
Last updated
.
Post not yet marked as solved
1 Replies
194 Views
Hi there! I'm currently new to Mac OS dev (coming from a history of Linux dev). I have an external BT keyboard and a couple keys are mapped differently than my Mac keyboard (§ to ` for example). I'm wondering if it's possible to write a kernel extension that detects the key sent from the BT keyboard and remap the key code. I don't really know whether this is possible and if it is, where to look in the ecosystem. It's a bit different from Linux. Thank you!
Posted Last updated
.
Post not yet marked as solved
7 Replies
2.5k Views
Hi Apple developer experts, I am getting one critical issue related to Bluetooth on MacOS 12.0.1 and MacOS 12.1. Since we upgrade to MacOS 12.0.1 the bluetooth not working to the pair with device anymore with detail checking as below: The issue was not happened from MacOS 10.7 to 11.3 Big Sur. Only happened from macOS Monterey 12.0.1 + I got the console log with these message: [CoreBluetooth] No name or address and [CoreBluetooth] WARNING: Unknown error: 431. Sometime I also got this: [CoreBluetooth] WARNING: Unknown error: 10702 Checking with tool PacketLogger I saw the error message in HCI Event : Authentication Complete - PIN Or Key Missing and Command Complete [FD4E] - LE Update Extended Advertising Instance - Invalid HCI Command Parameters The code get IOBluetooth Local Services in macOS Catalina response the channel id is 2 or 3 for the hardware device depending on. While in macOS Monterey is response with channel id 1. (The valid RFComm channel from 1 to 30 - IOBluetooth library) The RFCOMMChannel in macOS Monterey is not opened and not response the notification. Everything works fine with older MacOS (I used PacketLogger to check). This maybe the main issue that the Pair device is not working anymore. Note that the status BT connected just keep around 5 seconds then disconnected. My code request RFCOMM include service name, L2Cap attribute, RFComm attributes, SDP attributes with uuid I am very appreciate If anyone knows what should be changed or fix. Many thanks. I tried a lot of cases but it still not working, include reset the bluetooth from my Mac machine. Our customer complaints a lot since they updated macOS Monterey and the bluetooth has been not working properly. Any help would be greatly appreciated. Thank you!
Posted Last updated
.
Post not yet marked as solved
0 Replies
126 Views
Here I have an requirement that ios ble app may not repeatedly does service and characterice discovery process if that the gatt database in the peer device is not changed. To use the cache in the ios could fast the operation on peer device. And it said to use the cache of gatt database in IOS needs the condition which IOS and ble device need to be paired firstly. However my ios app does not need to be paired. who could tell how to do with it ?
Posted
by laodeng.
Last updated
.
Post not yet marked as solved
0 Replies
176 Views
My Logi devices were working perfectly well for the last 2 years, but after recently upgrading to macOS Monterey 12.4 (21F79), these devices are not showing up in the list of Bluetooth devices, its not getting discovered, can anyone help to resolve this issue.
Posted
by Partha-J.
Last updated
.
Post not yet marked as solved
1 Replies
179 Views
Does anyone know if I can create an app that can detect ibeacon even if the app is closed? I need to send the user a local notification when a region is entered (at an immediate distance) while the app is closed.
Posted Last updated
.
Post not yet marked as solved
1 Replies
144 Views
So i got this problem where i cant turn on bluetooth or wifi in my i phone. Thoes worked fine just minute ago but suddenly both of thoes stopped working. I tried to restart phone, restart wifi settings and restart all of the settings but nothing seems to work. What i can do?
Posted
by Sjoblom.
Last updated
.
Post not yet marked as solved
1 Replies
195 Views
Hi my bluetooth wont turn on after monterey Is anyone solved his problem of bluetooth turning on after monterey 12.3.1 or public beta 12.4? I updated to it but yet can’t turning on bluetooth of my core i5 macbook / anyone does have better solution? / I delete plist / rest smc and nvram / reset bluetooth / reinstall mac old and new versions / clean install mac / try unsigned blufix kext / try pkill bluetoothd in terminal try bluetool by brew / force quit bluetoothd and… / but didn’t solve it and I cant turn on bluetooth and using my magic mouse 2
Posted
by adolfs.
Last updated
.
Post not yet marked as solved
0 Replies
153 Views
My right airpod is not charging properly after the update. It shows it is always connected to the phone even when it is in the case. And when charging only left AirPod is getting charged. When I receive a call through the phone I am still getting airpods option. I tried unpairing and pairing, cleaned the case thoroughly, restarted my phone but nothing helped. Help me find a solution.
Posted Last updated
.