Having the same problem, although I'm not sure if it's related to iOS26 or phones with the U2 chip. Worth noting that I am doing peer to peer rather then peer to object, but figured I'd share my findings.
iPhone 16 Pro (U2 chip), iOS 26.3.1:
NISession created — capabilities:
token: true
supportsDirection: false
supportsCameraAssistance: true
supportsExtendedDistanceMeasurement: true
supportsPreciseDistanceMeasurement: true
iPhone 12 (U1 chip), iOS 18.6.2:
NISession created — capabilities:
token: true
supportsDirection: true
supportsCameraAssistance: true
supportsExtendedDistanceMeasurement: false
supportsPreciseDistanceMeasurement: true
What I've found so far, at least the case of the 16 Pro / U2 / iOS 26 (?):
- 3D direction vector is never available
- Camera seems to be required for directional convergence
- Everything seems to be determined by hAngle
- Placing both a 16 Pro and a 12 face down on a table with rear cameras covered: 12 continues to show position with a dirSrc of '3D'; 16 Pro tells me to "Move to a brighter area" with a dirSrc of 'none'
iPhone 12 seems to start an NI session with hAngle as its dirSrc before resolving to 3D.
If anyone has experienced anything differently with NISessions, would love to hear it.