Mist SDK FAQ

What is Mist SDK? Where do we use it?

Mist SDK will provide you the indoor blue dot experience using Mist’s 16 vBLE antenna array Access point. Using this SDK, you will know where the user is and can provide the proximity-related notification using Mist patented vBeacon technology.

You can use the Mist SDK to achieve the following use cases:

  • Indoor location
  • Wayfinding – to navigate on the path to reach the selected destination.
    • Mist SDK makes the location based real time blue dot experience come to life. For turn by turn navigation and underlying path routing logic for wayfinding, we work with 3rd party mapping systems, and have  an ecosystem as well: https://www.mist.com/ecosystem#
  • Uberhelp – can be used by staff or associates for customer assistance
  • Virtual Beacon and Zone notifications for data analytics purposes.

How can I try and test the Mist indoor location accuracy without building an App?

You can use our demo app called Mist Experience available on Play Store and App Store.

What are the requirements for building a Mobile App using Mist SDK?

In order to build an app using Mist SDK, you need to have the following prerequisites:

  • Basic knowledge of swift/Objective or Java programming.
  • Xcode setup for iOS and Android Studio setup on Android.
  • Bluetooth/Location enabled device(iPhone and Android)
  • Mist AP infrastructure.
  • Access to Mist Cloud.

Where can I find Android SDK

Where can I find iOS SDK?

Where can I find SDK documentation?

Can I run the App using Mist SDK on the simulator?

You can not run the app on the Simulator. Mist SDK uses Bluetooth sensors and Location services which is not supported by the Xcode simulator or Android Studio Emulator. You will need a physical iOS or Android device to run the SDK.

What are the different map types supported by Mist?

Mist supports PNG, GIFF, JPEG maps on the portal. For the app side, we have partnered with third-party map vendors such as Jibestream, Micello, Mapwize.

Which callback indicates that Mist SDK WebSocket connection is established?

MistCentralManager’s – didConnect callback would help check that Mist SDK is connected to the WebSocket.

Which callback gives map information when switching the floor or site?

OnMapUpdate – android and didUpdateDRMap – iOS, which returns MSTMap Object that contains mapId, mapname, mapURL, width, height, PPM.

Which callback gives heading or direction in the Mist SDK?

didUpdateDRHeading will get you Heading in the JSON payload [ Client → Snapped → Heading].

didUpdateHeading will provide the compass heading from the CLHeading object.

What is the frequency of the data sent to the cloud from the SDK?

Once the WebSocket connection is established, the SDK will send location data every second to the cloud.

Why do Mist SDK have 2 secret keys?

  • MobileSDK Secret: This secret token is used to enroll the device to the Org. This is obtained from the Mist UI Dashboard. [Refer: Where can I find secret key]
  • Secret: This is the response secret which is received on enrolling the device and is further used to instantiate MSTCentralManager.

What is the bandwidth usage on the Mist SDK per App client?

  • Received: 5 Kbps to 5 Mbps
  • Send: 10 Kbps to 40 Kbps

What is the difference between Site ID and Map ID?

Maps: Maps may represent multiple floors in a building or just a collection of maps where the user decides to put it into a single site.
Map ID → Floor/Level ID

Sites: The site may represent a location/project/deployment under a single organization. A site contains a set of Maps, WLANs, Policies, Zones.
Site ID → Venue ID

How do I continue developing App using Mist SDK without being on the actual site?

There are two ways you can do this:

  • You can use the Beacon simulator App available on the Play store to work on the iOS app.
  • You can also the Battery beacons or Tags (For example Kontakt.io )

What is the difference between DR and Non-DR SDK? Which one should I use?

Mist SDK support DR and Non-DR. DR stands for dead reckoning.
Non-DR → This SDK doesn’t use the dead reckoning algorithms. In case of lost connection, it will affect the blue dot experience.

DR → Mist SDK with DR provides a better blue-dot experience. Dead reckoning using the last known location and using the sensors on the device to bridge the gap until the device reconnects. If DR works as expected the user should not be able to tell the difference between a connected and disconnected state in an ongoing session of using location services.
We recommend using Mist SDK DR because it provides higher accuracy based on sensor fusion optimization.

How can I get the Mist SDK beta version?

Mist SDK beta refers to a prerelease version of SDK that is not public and is still under development.

Mist SDK beta version is available on Cocoapods and JCenter.
Mist SDK Beta iOS

pod 'MistSDKDR-Beta'

Mist SDK Beta Android

implementation 'com.mist:core-sdk-beta:2.0.113'

How do I report an issue with integration?

Where can I find the secret key?

Login to Mist portal here: https://manage.mist.com/

or

https://manage.ac2.mist.com

 

Steps to get a secret key:

  • Hover over the ‘Organization’
  • Click on ‘Mobile SDK’

 

  • Create a secret if it doesn’t exist

 

  • Copy unique key generated under secret to access your org in SDK.

Can I test location with Mist app?

  • Yes. Download the Mist Systems app from Android Play Store for Android or Apple Store for iOS and scan the organization secret code to load your org into the app to test
    • Follow the instructions to create a secret for your org if it doesn’t exist as shown in question 10
    • Click on ‘View’ to view qr code of the invitation that can be scanned by the Mist application for ease of access. For example, see the image below:

 

How do you distribute SDK release?

What permissions does your SDK require from user?

  • Both Android and iOS require access to location and bluetooth, in order to get indoor location feature working.

When should I ask for location permissions?

  • We recommend getting user’s permission to use their location before initializing SDK to receive location from SDK

Can I access location service in the background?

  • Yes. You can access location in background by implementing allowBackgroundLocation in iOS and using permission.ACCESS_BACKGROUND_LOCATION in Android as long as user allows the location services.

How can we ensure location accuracy?

How do I receive notifications from zone and virtual beacons?

To receive notification using virtual beacons and zones, you will need to make sure you have virtual beacons and zones set no your floorplan. See questions on configuring vBeacons and zones for more information.

You can receive zone and virtual beacon notifications using

Do you provide unique identifier for devices?

Mist assigns unique identifier for a device which can be extracted either from SDK or from sdk clients API (/api/v1/sites/:site-id/maps/:map-id/sdkclients). More information on sdk clients API can be found here: https://api.mist.com/api/v1/docs/Org#sdk-client

or

https://api.ac2.mist.com/api/v1/docs/Org#sdk-client

Do you provide location data for mobile app with Mist SDK in latitude and longitude?

  • Yes. We provide lat/long location coordinates in JSON object returned by a callback
    • onDRRelativeLocationUpdated in Android
    • didUpdateDRRelativeLocation in iOS