register

Register a device with the Sidewalk backend. If a SidewalkConnection has been established with the device before registration, use register(SidewalkConnection) instead.

You can register a device by given SidewalkDevice received from scan;

val device = sidewalk.scan()
.filter { it is SidewalkResult.Success }
.map { (it as SidewalkResult.Success).value }
.first()
sidewalk.register(device)

or provide a SidewalkDeviceDescriptor, containing device name, or endpointId. Sidewalk Mobile SDK would scan peripherals with given descriptor, and register the device if found one.

sidewalk.register(
SidewalkDeviceDescriptor.create(
nameFilter = "MyDevice"
)
)

After registration complete, device would disconnect BLE link. If you hold a SidewalkConnection instance before registration, it's disconnected as well, and you need to call secureConnect again to get a new connection instance.

Return

The result when registration complete, it returns RegisterResult.Success when succeeds, otherwise RegisterResult.Failure.

Parameters

descriptor

Device to attempt registration.


fun register(sidewalkConnection: SidewalkConnection): Flow<RegisterResult>

Register a device with the Sidewalk backend through the BLE secure connection.

val device = sidewalk.scan()
.filter { it is SidewalkResult.Success }
.map { (it as SidewalkResult.Success).value }
.first()
val connection = sidewalk.secureConnect(device)
sidewalk.register(connection)

Return

The result when registration complete, it returns RegisterResult.Success when succeeds, otherwise RegisterResult.Failure.

Parameters

sidewalkConnection

A secure BLE connection with the Sidewalk device