Spanish [SOLUCIONADO] UBICACIÓN

Anton Solans Argemí

Active Member
Licensed User
Si utilizo el código que detallo a continuación me detecta si la ubicación del teléfono está activada o no pero como puedo saber si el permiso de ubicación de la APP está activado o no y si no lo está, puedo solicitar activarlo en ese momento?


B4X:
Dim p As Phone
If p.GetSettings("location_providers_allowed")="" Then
    ToastMessageShow("Ubicacion no activada",True)
Else
    ToastMessageShow("Ubicacion activada,True)
 End If
 

drgottjr

Expert
Licensed User
Longtime User
deberias saber ya que una app que utiliza localizacion requiere el permiso del
usuario. si el usuario no lo otorga, no importa que tenga localizacion puesta o no.
no quiere que tu app la utilice. asi que lo primero es pedirle el permiso.

si esta concedido el permiso, puedes averiguar si localizacion esta activada. si no
lo esta, puedes dirigirle al dialogo de configuracion para localizacion. en cuanto
el sistema le devuelva a la app, adelante, camarada.

en cuanto a "location_providers_allowed", esta configuracion ya esta obsoleta.
y segun la documentacion para android dejara de funcionar un dia de estos...
me imagino que google la sustituira con otro metodo cuando se le ocurra.

empieza con "runtime permissions" (busca en la casilla arriba), si todavia no
estas al tanto. y para que el usuario configure localizacion, utilizas un "intent"
("android.settings.LOCATION_SOURCE_SETTINGS"). busca "intents" en la
casilla para implementar uno.
 
Last edited:

TILogistic

Expert
Licensed User
Longtime User
permisos:
lib RuntimePermissions

Chequear y solicitar
B4X:
    'Location permissions
    rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
    Wait For B4XPage_PermissionResult (Permission As String, PermissionResult As Boolean)
    If PermissionResult Then

Solo chequear
B4X:
    'Location permissions
    rp.Check(rp.PERMISSION_ACCESS_FINE_LOCATION)
    Wait For B4XPage_PermissionResult (Permission As String, PermissionResult As Boolean)
    If PermissionResult Then

si la ubicación del teléfono está activada
use Lib GPS
B4X:
    Dim GPS1 As GPS : GPS1.Initialize("")
    If GPS1.GPSEnabled = False Then StartActivity(GPS1.LocationSettingsIntent)
 
Last edited:
Top