<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "IOBluetooth",
  "identifier" : "/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "IOBluetooth"
    ],
    "preciseIdentifier" : "c:objc(pl)IOBluetoothHandsFreeDeviceDelegate"
  },
  "title" : "IOBluetoothHandsFreeDeviceDelegate"
}
-->

# IOBluetoothHandsFreeDeviceDelegate

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

```
protocol IOBluetoothHandsFreeDeviceDelegate : IOBluetoothHandsFreeDelegate
```

## Topics

### Receiving Status Indicator Changes

[`-  handsFree:callSetupMode:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:callSetupMode:))

Tells the delegate the call setup indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:isCallActive:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:isCallActive:))

Tells the delegate the active call indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:isServiceAvailable:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:isServiceAvailable:))

Tells the delegate the service level indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:signalStrength:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:signalStrength:))

Tells the delegate the call setup signal strength indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:callHoldState:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:callHoldState:))

Tells the delegate the call held indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:isRoaming:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:isRoaming:))

Tells the delegate the roaming indicator of the connected Bluetooth hands-free phone or headset has changed.

[`-  handsFree:batteryCharge:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:batteryCharge:))

Tells the delegate the battery level indicator of the connected Bluetooth hands-free phone or headset has changed.

### Receiving Call Status

[`-  handsFree:incomingCallFrom:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:incomingCallFrom:))

Tells the delegate there’s an incoming call on the connected Bluetooth hands-free phone or headset.

[`-  handsFree:currentCall:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:currentCall:))

Sends the delegate information about the current call.

[Current Call Information Constants](/documentation/IOBluetooth/current-call-information-constants)

Get information about a phone call on a hands-free Bluetooth device.

### Receiving SMS Information

[`-  handsFree:incomingSMS:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:incomingSMS:))

Tells the delegate there’s an incoming text message.

[SMS Dictionary Key Constants](/documentation/IOBluetooth/sms-dictionary-key-constants)

Read the parts of an SMS message.

### Receiving Other Information

[`-  handsFree:subscriberNumber:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:subscriberNumber:))

Tells the delegate the subscriber number of a call.

[`-  handsFree:ringAttempt:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:ringAttempt:))

Tells the delegate the phone is ringing.

[`-  handsFree:unhandledResultCode:`](/documentation/IOBluetooth/IOBluetoothHandsFreeDeviceDelegate/handsFree(_:unhandledResultCode:))

Tells the delegate the phone sent an unknown code.

## Relationships

### Inherits From

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

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)