Enum LocationStatus

    • Enum Constant Detail

      • STARTING

        public static final LocationStatus STARTING
        This is the first action performed by the LocationManager: it just means that it is starting.

        In Building Mode, this is the first action performed. It indicates that the Situm SDK is starting all the processes required to perform Indoor Positioning in that building.

        Beta!!. In Global Mode this is the last action returned but it should be the first. As in Building Mode, it indicates that the SDK is starting all the processes required to perform Global Positioning.


        public static final LocationStatus PREPARING_POSITIONING_MODEL
        (Building Mode only) Situm SDK is getting ready to download the Positioning Model.

        public static final LocationStatus START_DOWNLOADING_POSITIONING_MODEL
        (Building Mode only) The download of the Positioning Model is starting.

        public static final LocationStatus RETRY_DOWNLOAD_POSITIONING_MODEL
        (Building Mode only) The download of the Positioning Model has failed and Situm SDK will retry again.

        public static final LocationStatus PROCESSING_POSITIONING_MODEL
        (Building Mode only) The Positioning Model has been downloaded and now is being processed in order to start Indoor Positioning in its building.

        public static final LocationStatus STARTING_POSITIONING
        (Building Mode only) Indoor Positioning is starting: Situm SDK will start reading sensor data (for example, WIFI and BLE) and computing the Indoor Position within the selected building.

        public static final LocationStatus USER_NOT_IN_BUILDING
        (Building Mode only) A valid position can not be computed in the selected building.

        This happens because WiFi and/or BLE signals received by the smartphone do not match with those present in the building's Positioning Model (gathered during the building calibration). Usually, this means that the user is not in the building (e.g. she has gone far away from it).


        public static final LocationStatus CALCULATING
        Situm SDK is computing the location of the user.

        In Building Mode, this is the last action performed. The SDK has all the information it needs and Indoor Positioning has started at this point. This action will be repeated until a valid location can be computed in the building. Otherwise, a status USER_NOT_IN_BUILDING will be returned.

        Beta!! In Global Mode, the Situm SDK starts to compute Global Positioning: tries to determine whether the user is in any known building to start Indoor Positioning in it, otherwise computes Outdoor Positioning. In versions prior to 2.85.0 this is the first action returned (now fixed).


        public static final LocationStatus NO_CONNECTION
        Warning: no internet connection is available (Situm SDK will not be able to download Positioning Models).

        public static final LocationStatus COMPASS_CALIBRATION_NEEDED
        Warning: the compass is uncalibrated and needs to be calibrated.

        See this article for details on how to calibrate it.


        public static final LocationStatus COMPASS_CALIBRATION_NOT_NEEDED
        General Info: the compass is properly calibrated and its data will be used without any issue.

        public static final LocationStatus BLE_NOT_AVAILABLE
        Bluetooth sensor is not available or the app is running on Android SDK API < 18 (BLE scanning is not supported before API 18).

        public static final LocationStatus GEOFENCES_NOT_AVAILABLE
        The download of the building's geofences has failed and GeofenceListener won't work.

        public static final LocationStatus ALARM_PERMISSIONS_NEEDED_TO_AVOID_DOZE
        To use the avoidDoze functionality you need to declare USE_EXACT_ALARM and SCHEDULE_EXACT_ALARM permissions on your AndroidManifest

        public static final LocationStatus TIME_SETTINGS_MANUAL
        Warning: The user has disabled the "Automatic date and time" setting of the smartphone, therefore the date and time will be manually determined by the user, instead of automatically determined by the network.

        Since Situm SDK tags each geolocation with the timestamp returned by the smartphone, this will cause that geolocations will be tagged as if they were generated in the past or in the future. Obviously, this is not recommended: Situm Platform requires that all devices are synchronized to the same network clock in order to work properly.


        public static final LocationStatus GLOBAL_LOCATION_NOT_FOUND
        (Global Mode only) Warning: Google Location provider (for example, GPS) has not been able to return locations in the first 30 seconds (Situm SDK will keep trying).

        public static final LocationStatus LOCATION_DISABLED
        (Building Mode only) Warning: the user has disabled the smartphone's location (e.g. in the system's tray), therefore Situm SDK may not be able to compute user's geolocation.

        Disabling the smartphone's location will prevent Situm SDK to scan Wi-Fi and BLE in most devices. Therefore, Situm SDK will not be able to work properly in this case. You should urge the user to enable the smartphone's location again.


        public static final LocationStatus WIFI_SCAN_THROTTLED
        (Android 9 and superior only) The WiFi scan is throttled (see this article for details), and the WiFi scan interval will be changed to one scan every 30 seconds.
    • Method Detail

      • values

        public static LocationStatus[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (LocationStatus c : LocationStatus.values())
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static LocationStatus valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        name - the name of the enum constant to be returned.
        the enum constant with the specified name
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • toMap

        public java.util.Map<java.lang.String,​java.lang.Object> toMap()
        Description copied from interface: MapperInterface
        Method to transform object into Map
        Specified by:
        toMap in interface MapperInterface
        Map with the information of the object mapped