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
- Connect to the camera via INSCameraManager.socket().setup() and wait for .INSCameraDidConnect
- Set INSCameraManager.socket().autoReconnect = true
- Start a session player (INSCameraSessionPlayer) and begin sending heartbeats via commandManager.sendHeartbeats(with:)
- Call INSCameraManager.socket().shutdown(), OR force-kill the host process
- 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.
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
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.