SmartSDK is built on top of the CoreSDK. In comparison to CoreSDK, the SmartSDK has following advantages:
Assets and resources for developers getting started with Steerpath SmartSDK.
<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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
// for backwards compatibility
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
repositories {
maven { url "https://android-sdk.steerpath.net" }
}
// see changelog for latest version
dependencies {
implementation "com.steerpath:smart:android-smart-x.x.x"
}
Other configuration:
Contact support@steerpath.com
Recommended place to start the SDK is your Application.java class.
SmartSDK.getInstance().start(this, yourAPIKeyHere);
SDK configuration file contains customer specific configuration such as map’s initial camera position, search categories, routing and positioning parameters. The configuration file needs to be placed in a specific location in the project folder. In Android the configuration file needs to be added to /src/main/assets folder.
Steerpath provides meta data json separately.
These files contains necessary meta data for certain SmartSDK functions. For example, setCametaToObject() requires a String localRef and String buildingRef as parameter:
setCameraToObject("Lounge", "67", 20, null);
OfflineBundle (.sff) is a package containing indoor map tiles, (world tiles excluded), map style, routing data, positioning data and map object meta data. With OfflineBundle, maps & indoor positioning works without network connection.
Steps to enable OfflineBundle
<meta-data android:name="SP_OFFLINE_DATA" android:value="theNameOfYourOffineBundle.sff"/>
To enable SDK Logging tool (called "Monitor"), add following flag to your app's Manifest.xml:
<meta-data android:name="SDK_LOGGING_ENABLED" android:value="true" />
When enabled, an additional overlay button will appear on the map. To filter logs in terminal, use:
adb logcat *:S Monitor:V
Around 14MB
This is because Google requires apps requesting access to Bluetooth also obtain location permission too, as Bluetooth can be used to derive location information when combined with beacons in fixed locations.
Bluetooth LE uses the MAC address of the device's Bluetooth/Wifi chipset to identify other devices. Now, the problem is that if a user A has both GPS and Bluetooth enabled and he or she walks nearby some other user B who has only Bluetooth enabled, the location of user B "leaks" through the user A. So, because Bluetooth can be used to identify a device, and the device's location can be discovered indirectly via some other device, Google enforces this policy so user would understand that his or hers location can be now discovered.
Learn more: https://developer.android.com/guide/topics/connectivity/bluetooth
SDK does not collect personally identifiable information. The default Telemetry tracking id is GUID that is used to identify a specific app instance, not user. GUID is reset after every app reinstall.
Learn more: https://developer.android.com/training/articles/user-data-ids
support@steerpath.com
com.steerpath.smart | Helpers and tools. |
com.steerpath.smart.listeners | SmartMapFragment interface and callback definitions. |