---
title: DDDevice
framework: DeviceDiscoveryExtension
role: symbol
role_heading: Class
platforms: [iOS 16.0+, iPadOS 16.0+, Mac Catalyst 16.0+, visionOS 1.0+]
path: devicediscoveryextension/dddevice
---

# DDDevice

An object that describes a discovered device of interest.

## Declaration

```swift
class DDDevice
```

## Overview

Overview The extension creates an instance of this class for a discovered device of interest and passes it to the system for display in the device picker UI (AVRoutePickerView). The extension discovers devices through either Core Bluetooth or the local network (that is, using Bonjour). For device discovery extensions of third-party media receivers, an instance of this class corresponds to the media receiver of interest. The extension reports the status of discovered devices to the system using the report(_:) function, and it receives status updates about the device from the system by implementing didReceiveEvent(_:).

## Topics

### Initializing a device

- [init(displayName:category:protocolType:identifier:)](devicediscoveryextension/dddevice/init(displayname:category:protocoltype:identifier:).md)

### Identifying the device

- [displayName](devicediscoveryextension/dddevice/displayname.md)
- [identifier](devicediscoveryextension/dddevice/identifier.md)
- [category](devicediscoveryextension/dddevice/category-swift.property.md)
- [DDDevice.Category](devicediscoveryextension/dddevice/category-swift.enum.md)

### Indicating the protocol

- [protocol](devicediscoveryextension/dddevice/protocol-swift.property.md)
- [DDDevice.Protocol](devicediscoveryextension/dddevice/protocol-swift.enum.md)
- [protocolType](devicediscoveryextension/dddevice/protocoltype.md)
- [bluetoothIdentifier](devicediscoveryextension/dddevice/bluetoothidentifier.md)
- [networkEndpoint](devicediscoveryextension/dddevice/networkendpoint-3lah1.md)

### Setting the device state

- [state](devicediscoveryextension/dddevice/state.md)
- [txtRecord](devicediscoveryextension/dddevice/txtrecord.md)
- [url](devicediscoveryextension/dddevice/url.md)
- [supportsGrouping](devicediscoveryextension/dddevice/supportsgrouping.md)

### Communicating device content and playback status

- [mediaContentTitle](devicediscoveryextension/dddevice/mediacontenttitle.md)
- [mediaContentSubtitle](devicediscoveryextension/dddevice/mediacontentsubtitle.md)
- [mediaPlaybackState](devicediscoveryextension/dddevice/mediaplaybackstate-swift.property.md)
- [DDDevice.MediaPlaybackState](devicediscoveryextension/dddevice/mediaplaybackstate-swift.enum.md)

### Instance Properties

- [deviceSupports](devicediscoveryextension/dddevice/devicesupports.md)
- [displayImageName](devicediscoveryextension/dddevice/displayimagename.md)
- [ssid](devicediscoveryextension/dddevice/ssid.md)
- [wifiAwareModelName](devicediscoveryextension/dddevice/wifiawaremodelname.md)
- [wifiAwareServiceName](devicediscoveryextension/dddevice/wifiawareservicename.md)
- [wifiAwareServiceRole](devicediscoveryextension/dddevice/wifiawareservicerole-swift.property.md)
- [wifiAwareVendorName](devicediscoveryextension/dddevice/wifiawarevendorname.md)

### Enumerations

- [DDDevice.WiFiAwareServiceRole](devicediscoveryextension/dddevice/wifiawareservicerole-swift.enum.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Device information

- [DDDevice.Category](devicediscoveryextension/dddevice/category-swift.enum.md)
- [DDDeviceState](devicediscoveryextension/dddevicestate.md)
- [DDDeviceCategoryToString(_:)](devicediscoveryextension/dddevicecategorytostring(_:).md)
- [DDDeviceStateToString(_:)](devicediscoveryextension/dddevicestatetostring(_:).md)
- [DDDevice.Protocol](devicediscoveryextension/dddevice/protocol-swift.enum.md)
- [DDDeviceProtocolToString(_:)](devicediscoveryextension/dddeviceprotocoltostring(_:).md)
- [DDDeviceProtocolString](devicediscoveryextension/dddeviceprotocolstring.md)
- [DDDeviceMediaPlaybackStateToString(_:)](devicediscoveryextension/dddevicemediaplaybackstatetostring(_:).md)
