This page outlines the troubleshooting steps for developers experiencing problems with location services in their apps using Situm SDK. Whether positioning isn’t starting, location updates aren’t received, or errors are encountered, follow this guide for systematic diagnostics.
Try Positioning with Situm Wayfinding #
The first step is to verify whether positioning is correctly configured in your venue. To do this:
- Download Situm Wayfinding app.
- On the Remote Configuration of your account, verify that positioning configuration is correct (e.g. WiFi, BLE beacons, or GPS are properly configured for the building).
- If you’re not using Remote Configuration (not recommended), specify the appropriate positioning settings within Situm Wayfinding app (e.g. whether you’re scanning WiFi/BLE).
- Simulate positioning on the venue:
If this worked, you know that your venue is calibrated and positioning configuration seems to be alright.
If it didn’t, check at least:
- Did you calibrate the venue correctly?
- Does the positioning configuration look alright?
- Model date is the most recent.
- WiFi / BLE visualization seem ok
- etc.
- Have you simulated the correct beacons? Double check in our Infrastructure Panel.
Otherwise, please contact support@situm.com for guidance.
Try positioning in your app #
Check that you’re using Situm SDK correctly following our Quickstart Guides #
Next, you may start troubleshooting in your app. A great way to troubleshoot is to make sure that you’re following our Quickstart Guides, which contain a step-by-step guide on everything you need to apply. Some of them even include a section called “Code explanation: step-by-step”, that will distill the most important ones.
Typical things to consider:
- Are you setting the credentials correctly? Docs: Android, iOS, Cordova/Capacitor, Flutter, React Native.
- Are you initializing the SitumSDK correctly? Docs: Android, iOS (not needed), Cordova/Capacitor, Flutter, React Native.
- Are you setting up the Remote Configuration and/or LocationRequest? Docs: Android, iOS, Cordova/Capacitor, Flutter, React Native.
- Are you requesting all the permissions? Is the user granting them? Docs: Android, iOS, Cordova/Capacitor, Flutter, React Native.
- Are you starting positioning? Docs: Android, iOS, Cordova/Capacitor, Flutter, React Native.
Set up the SDK callbacks and check for errors #
The Situm SDK provides three callbacks that provide valuable information:
- onLocationUpdates: allows you to retrieve and handle new locations.
- onLocationStatus: receives status, such as whether the SDK has started, stopped, etc.
- onLocationError: receives errors, such as whether your app has the appropriate permissions.
More info on how to implement them here. Please take into account the status/error logs that the SDK is providing, since this usually indicates the source of the error.
Check that the application permissions are being granted #
Not providing the adequate permissions to the app is one of the most common sources of positioning errors. More info:
- Permissions you need to ask for.
- How to verify your app’s permissions and change them if needed.
- Android:
- Open Settings: Tap on the Settings app.
- Navigate to Apps: Select Apps & notifications.
- Choose the App: Tap on the specific app whose permissions you want to review.
- View & Grant Permissions: Select Permissions to see and grant all the required ones.
- iOS:
- Open Settings: Tap on the Settings app.
- Navigate to Apps: Scroll down and select Apps.
- Choose the App: Tap on the specific app whose permissions you want to review.
- View & Grant Permissions: Grant all the required permissions.
- Android:
Check that all the relevant sensors are enabled #
Another common source of error is having one or more needed sensors disabled (e.g. BLE or Location sensor). More info here.
Check your Remote Configuration and Location Request #
- Check that your Remote Configuration is set up correctly and follows our recommended best practices.
- Make sure you’re not overriding the Remote Configuration unless you have a good reason to do so (e.g. specifying the building ID if you don’t need the building detector is a good reason).
Check that you’re using Building mode / Global mode correctly #
Errors often arise from confusion between Building Mode and Global Mode. Here’s how to determine the right approach for your use case:
- One Building Only. If your app only requires positioning in a single building within your account, it’s best to specify the Building ID for that building in the Remote Configuration. This ensures that Situm SDK skips the venue detection step, providing faster and more efficient positioning.
- Multiple Venues with a Venue Selector. If your app supports multiple buildings but knows at runtime which venue positioning should start in, you can override the Building ID programmatically in the
LocationRequest
. This approach bypasses the auto-detection process, reducing the time it takes to compute the first location fix. Examples of when this is useful:- One app per building: Each app is dedicated to a specific building.
- Venue selector: The user selects the building or venue manually through a UI.
- Multiple Venues with Auto-Detection. If your app supports positioning across multiple buildings but doesn’t know the specific venue at runtime, rely on Situm SDK’s auto-detection feature. Ensure you configure the correct venue detectors (e.g., BLE + WiFi) in your Remote Configuration to optimize detection accuracy, as described in the Situm documentation
Choosing the correct mode ensures your app achieves accurate and efficient positioning based on your specific requirements.