segunda-feira, 16 de fevereiro de 2015

WINDEV MOBILE - Verifica GPS Ligado e Posicao - Adriano Boller

WINDEV MOBILE - Verifica GPS Ligado e Posicao - Adriano Boller

Link - Verifica Gps Ligado - http://forum.pcsoft.fr

GPSStatus (Function) - http://help.windev.com 

 













-----------------------------------------------------------------------

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 )

--------------------------------------------------------------------------------------

 
//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);
}

----------------------------------------------------------------------------------------

 
//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);
}

---------------------------------------------------------------------------------------

 
OBS.: É necessário ativar essas opções no Android Manifest XML do Windev Mobile:

A) Android.Permission.WRITE_SECURE_SETTINGS

B) Android.Permission.WRITE_SETTINGS

------------------------------------------------------------------------------------------------------------------------------------------------------------

 
Outra maneira de testar se esta desligado o 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)

----------------------------------------------------------------------------------------

 
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

------------------------------------------------------------------------------------------

 

OBS.: Com o código java no projeto Android é possivel desligar e ligar o GPS via codigo ao abrir o aplicativo colocando GPS_ON() e desligar ao sair colocando no embed de codigo close window GPS_OFF() ou em botoes na tela. Lembrando que é necessário atribuir no AndroidManifest.Xml a permissão de escrita nas configurações do sistema. No Wizard na ultima tela antes de concluir mande re-escrever o AndroidManifest.Xml caso tenha dado algum erro. 

Sendo assim finalizo esse post, aguardo por sugestões de melhoria e comentarios se conseguiram testar os 3 exemplos acima. 

Ótimos estudos da plataforma PcSoft a todos!



 

 

Um comentário:

Teste

Teste
teste