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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions