-
Notifications
You must be signed in to change notification settings - Fork 6
Home
Table Contents:
Overview
Requirements
Integrate MistSDK
Initialize MistSDK
Getting Location Info
Lat/Long coordinate
Sample Apps
Mist provides indoor blue dot navigation experience with 16 vBLE antenna array in Mist Access Point. This guide will provide detailed information on our Android SDK. It will help you configure application to integrate Mist SDK and initialize location services.
- Android Studio: 3.0 or later .
- Minimum Android SDK: API 21 .
- Target Android SDK: API 271
- Latest Mist SDK .
- Mist AP wireless network infrastructure .
- Access to Mist Account .
- This document assumes that reader has basic knowledge of Android development .
Note: If your app is targeting API level 28 (Android 9.0) or above, you must include the following declaration within the element of AndroidManifest.xml.
<uses-library android:name="org.apache.http.legacy" android:required="false" />
MistSDK can be integrated by using one of the following ways in your android app project:
Add the following in your app module build.gradle, This will take care of both Mist Core SDK and DR SDK
implementation 'com.mist:core-sdk:2.0.64'or
While manually setting up SDK, include both 'Mist Core SDK' and 'DR SDK' in you application project.
- Download 'sdk-framework.aar' and 'mist-mobile.aar' from SDK Releases
- Add following to app/build.gradle in dependencies
implementation(name:'sdk_framework', ext:'aar')
implementation(name:'mist-mobile', ext:'aar')
implementation fileTree(include: ['*.jar'], dir: 'libs')In project/build.gradle, add following in repositories
flatDir { dirs 'libs'}For more details please refer to one of the Sample Apps
To initialize Mist SDK you need organization secret and organization id.
- Obtain the invitation token from the Mist portal at the following path: Organization -> Mobile SDK. Use the token to obtain the org_id and secret via onReceivedSecret callback:
MSTOrgCredentialsManager.enrollDeviceWithToken(this,secret, new MSTOrgCredentialsCallback() {
/**
* @param orgName Organization Name for the QR code
* @param orgID Organization ID for the QR code
* @param sdkSecret SDK secret token to be used to connect to Mist
* @param error Error if the information cannot be found
*/
@Override
public void onReceivedSecret(String orgName, String orgID, String sdkSecret, String error,String envType) {
//
}
});- Use the org_id and secret for starting the SDK and implements the CentralManagerIndoorOnlyListener callbacks:
MSTCentralManager mstCentralManager = new MSTCentralManager (application, orgID, orgSecret, mstCentralManagerIndoorOnlyListener);
- Call start API of MSTCentralManager to start the SDK:
mstCentralManager.start();
- Call stop on MSTCentralManager to stop receiving callbacks from Mist SDK:
mstCentralManager.stop();
Location response is used to know the position of the user in that particular floorplan. To get location information from Mist SDK implement MSTCentralManagerIndoorOnlyListener callbacks in your application. Following method returns updated location of the device as a point (X,Y) measured in meters from the map origin:
onRelativeLocationUpdated(MSTPoint relativeLocation, MSTMap[] maps, Date dateUpdated)The current map can be retrieved by maps[0].
relativeLocation object contains the following user information:
- x, y: user location
- hasMotion: is the user in motion ,
- mstPointType: type Cloud,
- latency: latency in the network,
- heading: compass heading,
- headingFlag: availability of compass heading
To get Lat/Lon information along with x/y from the SDK, you need to implement MistLocationAdvanceListener callbacks in your application. Following method returns the Lat/Lon.
onDRRelativeLocationUpdated(JSONObject drInfo, MSTMap mstMap, Date date)The latitude and longitude coordinate can be found inside the JSONObject.
{
"Raw": {
"Lat": 36.562600,
"Lon": -118.957490,
},
"Snapped": {
"Lat": 36.562600,
"Lon": -118.957490,
}
}For more detail, you can see the implementation in the sample app here
For further questions please reach out to support@mist.com