Steerpath Indoor Maps, positioning and navigation SDK 3.8.x.x
Changelog
Changelog
Examples
Steerpath Demo App in Google Play
Steerpath Demo App source code is provided as SDK examples:
Demo App Git Repo
Installation
Show installation instructions
Permissions
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
Dependencies (app.gradle)
// for backwards compatibility
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
repositories {
maven { url "http://steerpath.bintray.com/steerpath" }
}
// see changelog for latest version
dependencies {
implementation 'com.steerpath:steerpath:android-d.i.c.f'
}
implementation group: net.lingala.zip4j 1.3.1
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
Other dependencies:
SDK depends on ContextCompat.checkSelfPermission(), which means minimum compileSdkVersion should be 23.
Make sure that your projects minSdkVersion is at API 21 or higher.
Migration Guide For Backward Incompatible API Changes
Migration Guide
Documentation for old SDK versions
3.4.x.x
3.5.x.x
3.6.x.x
3.7.x.x
Mapbox
Steerpath SDK is derived from Mapbox 8.2.0.
Mapbox.com
Theming
Overridable resources:
colors.xml
styles.xml
strings.xml
Troubleshoot
Show Troubleshoot
How to get debug from the SDK?
SDK logging tool is called "Monitor"
- enable with SteerpathClient.StartConfig.Builder().developerOptions(DeveloperOptions.getDefaultOptions());
- filter logcat with "Monitor". For example: adb logcat *:S Monitor:V
How do I know if location comes from the GPS instead of Bluetooth?
- bouncing or restless blue dot
- blue dot in each floor
- LevelPickerView does not have "current level indicator"
I dont have any beacons. How to develop my app without one?
You can use Fake Location, see FusedLocationProviderApi and FakeLocationSource.
I cant get position at all?
Requirements for positioning:
- Nearby beacons are required
- Application needs permissions.
- Bluetooth must be turned on.
- Location Services must be turned on.
- Real device is required. Bluetooth does not work with the emulator.
Data on the server has updated, when can I see the changes in my app?
SDK automatically checks updates and downloads files silently in the background. Updates are applied next time app is launched.
Background positioning, Android background limitations and Doze
We are facing two kinds of problem relating to background positioning a.ka "pocket mode".
a. Some devices stops giving us Bluetooth scan events when screen is turned off.
b. Some devices may kill Foreground Service despite of Android documentation promises otherwise: https://developer.android.com/about/versions/oreo/background#services
In both cases, positioning stops working.
Most likely this is a combination of background task limitations introduced in Android Oreo and some manufacturers implementing battery saving mechanisms of their own, disregarding Googles best practices.
Despite of many attempts, we havent found a reliable workaround and these issue remains open.
Packages