Hi, We are developing an application using Estimote Beacons.
Here are the steps we followed:
1: Used the Estimote IOs app to configure the beacons and get the indoor map.
2: The map can be seen in the estimote cloud and also the same can be viewed in android application.
3: Able to get the distance (meter) from the beacon.
Problem Statement:
The user can be shown on the map. The user movement can be viewed on the map, but not accurate. The latitude and longitude always fetched as (0,0) from the SDK. We are using coordinates to detect the left and right direction to the user navigation.
Things we tried to solve:
1: Decrease the advertising interval.
2: Increase the power of beacon.
Here is the code in fetching the coordinates.
cloudManager.getLocation("abhishek-b-s-location-lax", new CloudCallback<Location>() {
@Override
public void success(Location location) {
Log.d("Test", "beacons location list from map " + location.getBeacons());
indoorLocationManager = new IndoorLocationManagerBuilder(getApplicationContext(), location)
.withDefaultScanner()
.build();
indoorLocationManager.setOnPositionUpdateListener(new OnPositionUpdateListener() {
@Override
public void onPositionUpdate(LocationPosition locationPosition) {
Log.d("Test", "location " + locationPosition);
indoorLocationView.updatePosition(locationPosition);
}
@Override
public void onPositionOutsideLocation() {
indoorLocationView.hidePosition();
}
});
indoorLocationView = (IndoorLocationView)findViewById(R.id.indoor_view);
indoorLocationView.setLocation(location);
indoorLocationManager.startPositioning();
}
@Override
public void failure(EstimoteCloudException e) {
// oops!
}
});
If there is a better way to solve this problem, let me know. Thanks in advance.