Hi,
I’m trying to perform UWB ranging between an iPhone and a Qorvo DWM3001CDK accessory using Apple NI’s NINearbyAccessoryConfiguration class. I’ve followed the steps described in the official Apple documentation (NINearbyAccessoryConfiguration | Apple Developer Documentation), specifically for enabling background mode using the init(accessoryData:bluetoothPeerIdentifier:) initializer.
The configuration is successfully created, and background mode is enabled. However, when the iPhone starts the session, I doesn’t receive any ranging data from the DWM3001CDK, and the session ends with a timeout.
Interestingly, if I use the init(data:) initializer, I can successfully receive ranging data, but this only works in foreground mode, which doesn’t meet my requirements.
Steps I’ve followed:
- Used Core Bluetooth to discover and pair the accessory.
- Retrieved the configuration data from the accessory according to the third-party UWB device specifications.
- Initialized the configuration using
NINearbyAccessoryConfiguration(accessoryData:bluetoothPeerIdentifier:)for background mode. - Started the session with
NISession.run(configuration). - Waited for updates in the delegate method
session(_:didUpdate:).
Specific questions:
- Are there additional requirements for using
init(accessoryData:bluetoothPeerIdentifier:)to enable background UWB ranging with the DWM3001CDK? - Is there a known difference in how
init(data:)andinit(accessoryData:bluetoothPeerIdentifier:)handle the ranging process?
Any advice or insights would be greatly appreciated.
Thanks in advance!