<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVSystemRouting",
  "identifier" : "/documentation/AVSystemRouting/AVSystemRouteController-18ns8",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVSystemRouting"
    ],
    "preciseIdentifier" : "s:15AVSystemRouting0A15RouteControllerC"
  },
  "title" : "AVSystemRouteController"
}
-->

# AVSystemRouteController

An object that manages interaction with system routes.

```
final class AVSystemRouteController
```

## Overview

Important: Your app must declare support for Media Sharing Extensions with the `MDESupportsUniversalURLPlayback` key and/or for
specific protocols in the `MDESupportedProtocols` key of  the app’s `Info.plist`.  ///

```xml
<key>MDESupportsUniversalURLPlayback</key>
    <true/>
<key>MDESupportedProtocols</key>
   <dict>
       <key>com.example.sharingprotocol</key>
       <string>com.example.myapplicationidentifier</string>
</dict>
```

Where the key in `MDESupportedProtocols` is the Protocol ID of the extension you are declaring support for and the string value
is the application ID of your remote application which the protocol would launch on the receiver.

Use the shared [`shared`](/documentation/AVSystemRouting/AVSystemRouteController-18ns8/shared) instance to observe routing events.
Register an [`AVSystemRouteControllerObserver`](/documentation/AVSystemRouting/AVSystemRouteControllerObserver-5syvg) to receive callbacks when users select or deselect
routes in the system route picker.

## Topics

### Instance Methods

[`func addObserver(any AVSystemRouteControllerObserver) -> Bool`](/documentation/AVSystemRouting/AVSystemRouteController-18ns8/addObserver(_:))

Adds an observer to receive notifications about system routing events.

[`func removeObserver(any AVSystemRouteControllerObserver)`](/documentation/AVSystemRouting/AVSystemRouteController-18ns8/removeObserver(_:))

Removes a previously registered observer from the system routing controller.

### Type Properties

[`class var shared: AVSystemRouteController`](/documentation/AVSystemRouting/AVSystemRouteController-18ns8/shared)

The shared system routing controller instance.

[`class var supportedExtensionAvailable: Bool`](/documentation/AVSystemRouting/AVSystemRouteController-18ns8/supportedExtensionAvailable)

A Boolean value that indicates whether a supported system routing extension is available.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)