<!--
{
  "availability" : [
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/BarcodeDetectionProvider",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "s:5ARKit24BarcodeDetectionProviderC"
  },
  "title" : "BarcodeDetectionProvider"
}
-->

# BarcodeDetectionProvider

An object that provides the real-time position of barcodes the framework detects in a person’s environment.

```
final class BarcodeDetectionProvider
```

## Overview

Use this provider to receive updates about barcodes that ARKit detect in a person’s surroundings, This provider returns the results in the form of an asynchronous sequence of [`BarcodeAnchor`](/documentation/ARKit/BarcodeAnchor) structures. Your app needs to include the <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.arkit.barcode-detection.allow> entitlement to use this capability; otherwise, it has no effect.

## Topics

### Creating a barcode detection provider

[`init(symbologies:)`](/documentation/ARKit/BarcodeDetectionProvider/init(symbologies:))

Creates a barcode detection provider that looks for the specified symbologies.

### Inspecting a barcode detection provider

[`anchorUpdates`](/documentation/ARKit/BarcodeDetectionProvider/anchorUpdates)

An asynchronous sequence of anchor updates that describe the anchors in a person’s surroundings.

[`description`](/documentation/ARKit/BarcodeDetectionProvider/description)

A textual representation of this barcode detection provider.

[`state`](/documentation/ARKit/BarcodeDetectionProvider/state)

The state of a barcode detection provider.

### Type properties

[`isSupported`](/documentation/ARKit/BarcodeDetectionProvider/isSupported)

A Boolean value that determines whether a device supports the barcode detection provider.

[`requiredAuthorizations`](/documentation/ARKit/BarcodeDetectionProvider/requiredAuthorizations)

The authorization types you need to use the barcode detection provider.

## Relationships

### Conforms To

[`DataProvider`](/documentation/ARKit/DataProvider)

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

[`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)