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!