<!--
{
  "availability" : [
    "macOS: 10.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "IOBluetooth",
  "identifier" : "/documentation/IOBluetooth",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "IOBluetooth"
    ],
    "preciseIdentifier" : "IOBluetooth"
  },
  "title" : "IOBluetooth"
}
-->

# IOBluetooth

Gain user-space access to Bluetooth devices.

## Overview

The Bluetooth framework supports user-space access to Bluetooth devices, including both C and Objective-C APIs.

## Topics

### Classes

[`IOBluetoothDevice`](/documentation/IOBluetooth/IOBluetoothDevice)

An instance of IOBluetoothDevice represents a single remote Bluetooth device.

[`IOBluetoothDeviceInquiry`](/documentation/IOBluetooth/IOBluetoothDeviceInquiry)

Object representing a device inquiry that finds Bluetooth devices in-range of the computer, and (optionally) retrieves name information for them.

[`IOBluetoothDevicePair`](/documentation/IOBluetooth/IOBluetoothDevicePair)

An instance of IOBluetoothDevicePair represents a pairing attempt to a remote Bluetooth device.

[`IOBluetoothDeviceRef`](/documentation/IOBluetooth/IOBluetoothDeviceRef)

An object that represents a Bluetooth I/O device.

[`IOBluetoothHandsFree`](/documentation/IOBluetooth/IOBluetoothHandsFree)

Hands free profile class.

[`IOBluetoothHandsFreeAudioGateway`](/documentation/IOBluetooth/IOBluetoothHandsFreeAudioGateway)

An object that sends data to a connected Bluetooth hands-free phone or headset and processes commands from it.

[`IOBluetoothHandsFreeDevice`](/documentation/IOBluetooth/IOBluetoothHandsFreeDevice)

An object you use to manage phone calls on a connected Bluetooth hands-free phone or headset.

[`IOBluetoothHostController`](/documentation/IOBluetooth/IOBluetoothHostController)

This class is a representation of a Bluetooth Host Controller Interface that is present on the local computer (either plugged in externally or available internally).

[`IOBluetoothL2CAPChannel`](/documentation/IOBluetooth/IOBluetoothL2CAPChannel)

An instance of IOBluetoothL2CAPChannel represents a single open L2CAP channel.

[`IOBluetoothL2CAPChannelRef`](/documentation/IOBluetooth/IOBluetoothL2CAPChannelRef)

[`IOBluetoothOBEXSession`](/documentation/IOBluetooth/IOBluetoothOBEXSession)

An OBEX Session with a Bluetooth RFCOMM channel as the transport.

[`IOBluetoothObject`](/documentation/IOBluetooth/IOBluetoothObject)

[`IOBluetoothObjectRef`](/documentation/IOBluetooth/IOBluetoothObjectRef)

[`IOBluetoothRFCOMMChannel`](/documentation/IOBluetooth/IOBluetoothRFCOMMChannel)

An instance of this class represents an RFCOMM channel as defined by the Bluetooth SDP spec..

[`IOBluetoothRFCOMMChannelRef`](/documentation/IOBluetooth/IOBluetoothRFCOMMChannelRef)

[`IOBluetoothSDPDataElement`](/documentation/IOBluetooth/IOBluetoothSDPDataElement)

An instance of this class represents a single SDP data element as defined by the Bluetooth SDP spec.

[`IOBluetoothSDPDataElementRef`](/documentation/IOBluetooth/IOBluetoothSDPDataElementRef)

[`IOBluetoothSDPServiceAttribute`](/documentation/IOBluetooth/IOBluetoothSDPServiceAttribute)

IOBluetoothSDPServiceAttribute represents a single SDP service attribute.

[`IOBluetoothSDPServiceRecord`](/documentation/IOBluetooth/IOBluetoothSDPServiceRecord)

An instance of this class represents a single SDP service record.

[`IOBluetoothSDPServiceRecordRef`](/documentation/IOBluetooth/IOBluetoothSDPServiceRecordRef)

[`IOBluetoothSDPUUID`](/documentation/IOBluetooth/IOBluetoothSDPUUID)

An NSData subclass that represents a UUID as defined in the Bluetooth SDP spec.

[`IOBluetoothSDPUUIDRef`](/documentation/IOBluetooth/IOBluetoothSDPUUIDRef)

[`IOBluetoothUserNotification`](/documentation/IOBluetooth/IOBluetoothUserNotification)

Represents a registered notification.

[`IOBluetoothUserNotificationRef`](/documentation/IOBluetooth/IOBluetoothUserNotificationRef)

[`OBEXFileTransferServices`](/documentation/IOBluetooth/OBEXFileTransferServices)

Implements advanced OBEX operations in addition to simple PUT and GET.

[`OBEXSession`](/documentation/IOBluetooth/OBEXSession)

Object representing an OBEX connection to a remote target.

### Protocols

[`IOBluetoothDeviceAsyncCallbacks`](/documentation/IOBluetooth/IOBluetoothDeviceAsyncCallbacks)

[`IOBluetoothDeviceInquiryDelegate`](/documentation/IOBluetooth/IOBluetoothDeviceInquiryDelegate)

This category on NSObject describes the delegate methods for the IOBluetoothDeviceInquiry object. All methods are optional, but it is highly recommended you implement them all. Do NOT invoke remote name requests on found IOBluetoothDevice objects unless the inquiry object has been stopped. Doing so may deadlock your process.

[`IOBluetoothDevicePairDelegate`](/documentation/IOBluetooth/IOBluetoothDevicePairDelegate)

[`IOBluetoothHandsFreeAudioGatewayDelegate`](/documentation/IOBluetooth/IOBluetoothHandsFreeAudioGatewayDelegate)

A set of optional methods for receiving information about status changes for a connected Bluetooth hands-free phone or headset.

[`IOBluetoothHandsFreeDelegate`](/documentation/IOBluetooth/IOBluetoothHandsFreeDelegate)

[`IOBluetoothHandsFreeDeviceDelegate`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate)

A set of optional methods for receiving status change updates and information about a connected Bluetooth hands-free phone or headset.

[`IOBluetoothL2CAPChannelDelegate`](/documentation/IOBluetooth/IOBluetoothL2CAPChannelDelegate)

[`IOBluetoothRFCOMMChannelDelegate`](/documentation/IOBluetooth/IOBluetoothRFCOMMChannelDelegate)

### Reference

[Bluetooth.h User-Space](/documentation/IOBluetooth/bluetooth-h-user-space)

Bluetooth wireless technology

[IOBluetoothUserLib.h](/documentation/IOBluetooth/iobluetoothuserlib-h)

Public Interfaces for Apple’s implementation of Bluetooth technology.

[IOBluetoothUtilities.h](/documentation/IOBluetooth/iobluetoothutilities-h)

See the Overview section above for header-level documentation.

[OBEX.h](/documentation/IOBluetooth/obex-h)

Public OBEX technology interfaces.

[OBEXBluetooth.h](/documentation/IOBluetooth/obexbluetooth-h)

Object Exchange over Bluetooth.

[OBEXFileTransferServices.h](/documentation/IOBluetooth/obexfiletransferservices-h)

[IOBluetooth Structures](/documentation/IOBluetooth/iobluetooth-structures)

[IOBluetooth Enumerations](/documentation/IOBluetooth/iobluetooth-enumerations)

[IOBluetooth Constants](/documentation/IOBluetooth/iobluetooth-constants)

[IOBluetooth Functions](/documentation/IOBluetooth/iobluetooth-functions)

[IOBluetooth Data Types](/documentation/IOBluetooth/iobluetooth-data-types)

## See Also

  [Bluetooth Device Access Guide](https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html#//apple_ref/doc/uid/TP30000997)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)
