ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Geolocation functions
  • Special cases
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Retrieves the activation status of the geolocation provider or asks to be notified when the status changes.
Example
// Checks the status of the GPS provider
IF GPSStatus() = gpsDisabled THEN
Info("Geolocation is not enabled.")
END
Syntax

Retrieving the activation status of the provider Hide the details

<Result> = GPSStatus()
<Result>: Integer constant
Activation status of the location provider. The following values can be returned:
gpsDisabledThe provider is disabled.
gpsEnabledThe provider is enabled.
gpsErrorError while retrieving the activation status of the provider. To get more details on the error, use ErrorInfo.
WINDEV This constant is not available.
WINDEV

Asking to be notified when the activation status changes Hide the details

GPSStatus(<WLanguage procedure>)
<WLanguage procedure>: Procedure name
WLanguage procedure ("callback" procedure) called for each notification.
This procedure has the following format:
PROCEDURE <Procedure name>(<Status>)
<Status> is an integer constant corresponding to the new status of the provider.
It can take the following values:
gpsAvailableThe provider is available.
gpsDisabledThe provider was disabled by the user.
gpsEnabledThe provider was enabled by the user.
gpsOffServiceThe provider is off service.
gpsUnavailableThe provider is temporarily unavailable.
Remarks

Special cases

    Related Examples:
    WM Geolocation Cross-platform examples (WINDEV Mobile): WM Geolocation
    [ + ] This example explains how to perform proximity searches with geolocation :
    - search around me
    - search in a city, at a given address, or close to a specific address.
    The results are displayed in a looper and in a map with markers.
    Android GPS Android (WINDEV Mobile): Android GPS
    [ + ] This example presents the use of the GPS functions of WLanguage in an Android application.
    It is used to retrieve at regular interval:
    - The latitude
    - The longitude
    - The altitude
    - The speed
    - The direction
    Component: wd300java.dll
    Minimum version required
    • Version 15
    This page is also available for…
    Comments
    Exemplo
    https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/3701-trabalhando-com-gps/read.awp
    Boller
    13 Mar. 2021
    EXAMPLE: GPS status and on / off GPS via Java
    FONTE:

    http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/9-windev-mobile-verifica-gps-ligado-posicao/read.awp

    ---x---

    Example 01:
    #####################################################

    Procedure GPS_VerificaStatus()

    Retorno is string = ""

    GloLatitude , GloLongitude is real = 0

    GPSInitParameter(gpsSatellite,gpsPrecisionHigh)

    // Recuperação da posição
    Retorno is geoPosition = GPSGetPosition() // 2000 = Intervalo máxo,p de 20 segundos

    GloLatitude = NumToString(Retorno..Latitude,"+-10.6f")
    GloLongitude = NumToString(Retorno..Longitude,"+-10.6f")

    Retorno = GloLatitude +"; "+ GloLongitude

    IF GloLatitude = 0 AND GloLongitude = 0 OR GloLatitude = null AND GloLongitude = null
    ToastDisplay("GPS Desligado!!!")
    END

    RESULT(Retorno )

    ---x---



    Example 02:
    #####################################################

    //Java GPS_On

    import android.app.Activity;
    import java.lang.*;
    import android.util.*;
    import java.lang.Exception;
    import android.util.Log;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;

    PUBLIC static void GPS_On()
    {
    Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
    intent.putExtra("enabled", True);
    getActiviteEnCours().sendBroadcast(intent);
    }

    ---x---

    //Java GPS_Off

    import android.app.Activity;
    import java.lang.*;
    import android.util.*;
    import java.lang.Exception;
    import android.util.Log;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;

    PUBLIC static void GPS_Off()
    {
    Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
    intent.putExtra("enabled", False);
    getActiviteEnCours().sendBroadcast(intent);
    }


    ---x---

    OBS.:
    You must enable these options in the Android Manifest XML Windev Mobile

    A) Android.Permission.WRITE_SECURE_SETTINGS

    B) Android.Permission.WRITE_SETTINGS

    ---x---



    Example 03
    #####################################################
    Another way to test whether this off GPS:

    // GLOBAL
    GloGpsAtivado is boolean = False

    //Open Window
    Procedure GPS_Inicializar()

    GPSInitParameter(gpsSatellite,gpsPrecisionHigh +gpsSpeed)

    IF GPSStatus() <> gpsEnabled THEN

    Popup("Para melhorar a precisão da sua localização, ative o seu GPS","L")

    gloStatusGps = False

    ELSE
    ChangeGPSStatus(GPSStatus())
    END

    GPSStatus(ChangeGPSStatus)

    ---x---

    //Procedure Global

    Procedure ChangeGPSStatus(nStatus)
    IF gnCurrentStatus = nStatus THEN
    RETURN
    END

    gnCurrentStatus = nStatus

    IF nStatus = gpsEnabled OR nStatus = gpsAvailable THEN

    GPSFollowMovement(GetPosition,300)

    END

    SWITCH nStatus
    CASE gpsEnabled
    GloGpsAtivado = True // <------------- Ligado
    CASE gpsDisabled
    GloGpsAtivado = False // <------------- Desligado
    gloStatusGps = False
    CASE gpsOffService
    CASE gpsUnavailable
    CASE gpsAvailable
    END

    adrianoboller
    14 Feb. 2015

    Last update: 09/24/2024

    Send a report | Local help