Skip to content

shutdown() does not notify camera of disconnection #78

Description

@il-yu-sato

Environment

SDK version: 1.9.2
Camera model: Insta360 X4 Air
Platform: iOS 18.5
Connection method: Wi-Fi (socket)

Problem

When the host app is terminated (task-killed) or calls INSCameraManager.socket().shutdown(), the camera does not recognize that the connection has been lost — it remains in a "connected" state and does not revert to its idle/standby behavior.
Steps to Reproduce

  1. Connect to the camera via INSCameraManager.socket().setup() and wait for .INSCameraDidConnect
  2. Set INSCameraManager.socket().autoReconnect = true
  3. Start a session player (INSCameraSessionPlayer) and begin sending heartbeats via commandManager.sendHeartbeats(with:)
  4. Call INSCameraManager.socket().shutdown(), OR force-kill the host process
  5. Observe the camera: it does not recognize the disconnection

Workaround Found

We discovered that if setPhotographyOptions(_:for:types:) is called with a value that actually changes the current setting (e.g., changing exposureBias to a different value), the camera will correctly detect subsequent disconnections — including process kill and shutdown(). Calling setPhotographyOptions with the same value as the current setting has no effect; only a genuine value change triggers this behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions