Estimote / Android-Indoor-SDK

Estimote Indoor SDK for Android
MIT License
63 stars 28 forks source link

Position Update does not work correctly #14

Open AntonioCoppola95 opened 6 years ago

AntonioCoppola95 commented 6 years ago

Prerequisites

Basic information

**Estimote SDK version: Indoor SDK 2.1.0

**Android devices affected: Samsung Galaxy s7, Huawei p8 lite 2017

**Android OS version affected: 7.0

**Beacon hardware version: F3.3

Description

I'm trying to develope an application that use Indoor Location SDK to found a postion in a perimeter. I build indoor location Map with the Estimote's app, but the onPosistionUpdate return the same posistion every time on Samsung s7, but when the app run on Huawei, posistion is updated two times but if i open Estimote app and i click on “configuration” to search nearby Beacons the app return to work correctly.

**Expected behavior: position should be change.

**Actual behavior: position does not change or the application works bad.

Add here any logs you want to attach, or any other info, like pictures for example

HubITgr commented 6 years ago

I am also experiencing the same issue with samsung galaxy tab s2(android 7.0), elephone s7 (android 7.1.1) and Huawei p9 Lite (android 7.1.1) devices.

askarsyzdykov commented 6 years ago

onPosistionUpdate return the same posistion every time

I have same problem on Nexus 5 with Android 6.0.1. Do you have any solution? @AntonioCoppola95 @HubITgr

**Estimote SDK version: Indoor SDK 2.4.0

**Android devices affected: Nexus 5

**Android OS version affected: 6.0.1

**Beacon hardware version: F3.3

**Beacon firmware version: Estimote OS 4.13.2

wafel82 commented 6 years ago

Hi All, I apologise for delayed response - we are working hard on new IndoorSDK version so we were super busy last weeks.

At this moment only thing I can tell is that we need to investigate this issue deeper - currently we are not able to reproduce it. Could you provide code snippet - how you are initialising the ScanningIndoorLocationManager and where the OnPositionUpdateListener is registered? Additionally - could you provide logcat output gathered when issue occurs?

Regards Wojtek

askarsyzdykov commented 6 years ago

I used your project, with code: image

and

image

I replaced only app id and app token in IndoorApplication class.

After opening the screen with Map, Beacons and Person icon, logcat show only next lines:

06-04 16:03:01.897 10423-10423/com.estimote.indoorapp D/BluetoothAdapter: STATE_ON 06-04 16:03:01.901 10423-10423/com.estimote.indoorapp D/BluetoothAdapter: STATE_ON 06-04 16:03:03.437 10423-10423/com.estimote.indoorapp D/BluetoothAdapter: STATE_ON 06-04 16:03:03.440 10423-10496/com.estimote.indoorapp D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=5 06-04 16:03:03.444 10423-10423/com.estimote.indoorapp D/BluetoothAdapter: STATE_ON 06-04 16:03:03.456 10423-10435/com.estimote.indoorapp D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=7

askarsyzdykov commented 6 years ago

Any updates?

wafel82 commented 6 years ago

Hi @askarsyzdykov

Once again I apologise for the delayed response - we are currently 110% busy by working on new Indoor SDK version (3.+). We are really close to release it.

Regarding the issue - we were tried to reproduce it on several Android phones (including the ones you observing issue on) with no luck - position is updated as expected. However, We just released new version of our sdk - 2.5.1 - it brings some minor bug-fixes in BLE scanner implementation and gives us an option to enable deeper debug logging for our algorithms. It would be super helpful if you take the updated SDK version, enable debug logging for it and send us the logcat output captured when your application is running.

We are using Skald library for logging purposes. So, to enable debug logging for our SDK, place following code snippet in your Application's class onCreate method:

skald {
    writeSaga {
        toLogcat {
            withTag { "INDOOR-SDK" }
            withLevel { LogLevel.DEBUG }
            withPattern { "${it.simplePath} thread [${it.threadName}] :: ${it.message}" }
        }
    }
}
askarsyzdykov commented 6 years ago

Hi @wafel82 Thank you for your response. I've updated Estimote library version and added file with logcat output. estimote.log If you try find 'calculated local position after jump rejection: LocationPosition(x=1.1845854594766978, y=0.9314563889437651' in this file, then you can see that location don't update

askarsyzdykov commented 6 years ago

Also I recorded a video. In this video you can see that person icon changes her position after first activity opening, but not moves after that. @wafel82

wafel82 commented 6 years ago

Hi @askarsyzdykov

Thanks for data your collected. We dig through the logs you provided and it seems that finally we found the problem 🚀 Our stack considers your location as a small one (4 beacons) and it looks like we have wrong parameters setup for small location in one of our filters. We will let you know as soon as we implement and test the fix.

Regards Wojtek

askarsyzdykov commented 6 years ago

Hi there @wafel82 !

Did you fix this bug or did realized new version of SDK?

wafel82 commented 6 years ago

Hi @askarsyzdykov Have you tried latest version of our SDK: implementation 'com.estimote:indoorsdk:2.5.4' Let us know if it solves the issue.

Regards Wojtek

ghost commented 6 years ago

I was facing same issue. I fixed the issue by downgrading sdk version to 2.5.3 Also I have taken one textView to get x, y coordinates and updated method as below:

override fun onPositionUpdate(locationPosition: LocationPosition) { indoorLocationView.updatePosition(locationPosition) runOnUiThread { txtVwLocationCords.setText("x: " + df.format(locationPosition.x)+ "\n" +"y: "+ df.format(locationPosition.y)) } } Although it's not smooth as ios version. I am using samsung j7 device. Happy coding :-)