---
title: "requestOpenSession(options:completion:)"
framework: imagecapturecore
role: symbol
role_heading: Instance Method
path: "imagecapturecore/icdevice/requestopensession(options:completion:)"
---

# requestOpenSession(options:completion:)

Requests to open a session on the device, then executes the completion handler.

## Declaration

```swift
func requestOpenSession(options: [ICSessionOptions : Any]? = nil, completion: @escaping @Sendable ((any Error)?) -> Void)
```

```swift
func requestOpenSession(options: [ICSessionOptions : Any]? = nil) async throws
```

## Discussion

Discussion Execution of the completion block occurs on the calling thread.

## See Also

### Managing a Device

- [delegate](imagecapturecore/icdevice/delegate.md)
- [ICDeviceDelegate](imagecapturecore/icdevicedelegate.md)
- [hasOpenSession](imagecapturecore/icdevice/hasopensession.md)
- [requestOpenSession()](imagecapturecore/icdevice/requestopensession().md)
- [requestSendMessage(_:outData:maxReturnedDataSize:sendMessageDelegate:didSendMessageSelector:contextInfo:)](imagecapturecore/icdevice/requestsendmessage(_:outdata:maxreturneddatasize:sendmessagedelegate:didsendmessageselector:contextinfo:).md)
- [requestCloseSession()](imagecapturecore/icdevice/requestclosesession().md)
- [requestCloseSession(options:completion:)](imagecapturecore/icdevice/requestclosesession(options:completion:).md)
- [requestEject()](imagecapturecore/icdevice/requesteject().md)
- [requestEject(completion:)](imagecapturecore/icdevice/requesteject(completion:).md)
