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 18 or higher.
Steerpath SDK is derived from Mapbox 5.5.3.
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 to 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 live beacon. How to develop my app without one?
SteerpathMapView has setupClickForFakeLocation() method. This way position can be faked simply by touching the map. NOTE: this disables Bluetooth!
At the moment SDK does not provide in-built utility for faking the location *without* a map, but such functionality can be implemented of app side
with LocationSource - api.
I cant get position at all?
Requirements for positioning:
- Nearby beacons are required
- Application needs permissions. See Permissions section above.
- Bluetooth must be turned on.
- Location Services must be turned on
The map is black?
Mapbox failed to load style. Search "mbgl" tags from logcat for more information.
The map is white?
Mapbox did load the style, but map tiles are not loaded. Check your initial coordinates. For example, if SteerpathMapView is opened in global view (showing whole world),
world tiles are attempted to load from position /0/0/0. If Steerpath map tile server does not host such map tiles, map will be white. Change initial camera position with SteerpathMap.setCameraPosition(), your venue position
is the preferred choice.
Data on the server has updated, when I can see changes in my app?
SDK automatically checks updates and downloads files silently in the background. Updates are applied next time app is launched (this is tied to process, app needs to be killed first).