Android and iOs indoor location

Hi there,

I successfully implemented a method to return the distance in the Android implementation, with the computeAccuracy method in utils.
According to the description this returns the distance.

I am building this with Xamarin.Forms BTW, so I’m trying to extend upon the Xplat unofficial library.

The problem is, I am not so sure how reliable that distance calculation is in Android. I did read some other topics, that suggested smoothing algorithms for example.
For iOS you would use the Indoorlocation SDK I presume (although there’s no Xamarin/Xamarin.Forms version of it)?

I would like to estimate someone’s location both on Android and iOs, with the Xamarin.Forms framework. So with using Trilateration how could I get the most reliable distances/location estimates?

Thanks in advance!

The distance estimations to beacons will never be super reliable. They’re based on the strength of the signal that reaches the phone, but the problem is, this signal can travel multiple paths (straight line, or bounced off walls, etc.), or be absorbed on the way (e.g., by other person) … even how you hold your phone matters (switch from portrait mode holding it in one hand, to landscape mode with both hands, and there will be a difference). And the phone can’t tell if the signal strength went down because sb is standing in the way, or because you really moved away from the beacon.

This is why in Indoor Location, we employ a ton of complex techniques to predict where the user is. Replicating the same on Android is quite challenging due to the vast landscape of Android devices, each of which behaves differently when it comes to their Bluetooth support. (different BT hardware, different positions of the antennas, different form factors and materials they’re made of, etc.)

If you want to create a universal iOS+Android experience, I’d recommend trying to do so based on “more-or-less proximity” to various beacons, rather than precise position. That’s the downside of hybrid development—you can’t always use all the greatest features, because you have to go for the maximum cross-device compatibility.

What app are you working on? We’ll be happy to advise about the best user-experience for your use case.