That code returns the RSSI, but needs to be combined with a previous call to the readRSSI method, otherwise it always returns null.
RSSI field will only be initialized after calling readRSSI, and updated each time it is called. The 'complete' working solution is
B4X:
Sub GetSomeRSSIValues
For k=0 to 10 'Just for test
Dim per As NativeObject = manager.GetPeripheralObject
per.RunMethod("readRSSI", Null) '<- needs to be called
Dim rro As NativeObject = per.GetField("RSSI")
If rro.IsInitialized Then
manager_rssiavailable(rro.AsNumber)
Else
Log("Not yet initted") 'Usually it will be if you call readRSSI before, but this prevents crashes if this is not the case.
End If
Sleep(2000)
Next
End Sub
Sub manager_rssiavailable(RSSI As Int)
Log( "New RSSI value: "&RSSI)
End Sub