Précédent   Forum des professionnels en informatique > Environnements de développement > WinDev > Windev Mobile
Windev Mobile Forum d'entraide sur la programmation Windev Mobile (Pocket PC, SmartPhone,...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2011, 17h24   #1
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Par défaut Comment intégrer un listener Android dans WINDEV MOBILE

Bonjour,

L'interface GPS de WINDEV MOBILE ne permettant pas d'accéder aux informations "fines" du GPS, je désire créer une procédure Java pour avoir ces infos.

Dans Android, cela passe par la création de deux listeners (donc asynchrones)
- un pour le location update
- l'autre pour le statut du GPS

Dans une procédure Java native, j'ai donc créé deux méthodes ayant pour but de répondre à ce type d'événement (location update et changement du status du GPS).

Le souci que je rencontre maintenant, c'est comment puis-je transférer les informations vues par ces listeners vers mon programme Windev Mobile ? J'ai essayé de passer par une écriture dans un champ de la fenêtre (avec un getView préalable), mais visiblement cela plante .....

Voici mon code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

public static void Location_listener()
{
	///////////////////////////////////////////
	// écriture
	TextView myTextView;
	myTextView = (TextView) getView ("LIB_log");
	myTextView.setText("avant init listener");
	
	
	////////////////////////////////////
	// Récupération du contexte et du location manager
	Context myContext     = getContexteApplication();
	LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
	
	//////////////////////////////////////////
	// Define a listener that responds to location updates
	LocationListener mylocationListener = new LocationListener() {
		public void onLocationChanged(Location location) {
			// Called when a new location is found by the network location provider.
			TextView myTextView;
			myTextView = (TextView) getView ("LIB_log");
			myTextView.setText("onLocationChanged");
		}
		
		public void onStatusChanged(String provider, int status, Bundle extras) {
			TextView myTextView;
			myTextView = (TextView) getView ("LIB_log");
			myTextView.setText("onStatusChanged");
			
		}
		
		public void onProviderEnabled(String provider) {
			TextView myTextView;
			myTextView = (TextView) getView ("LIB_log");
			myTextView.setText("onProviderEnabled");
			
		}
		
		public void onProviderDisabled(String provider) {
			TextView myTextView;
			myTextView = (TextView) getView ("LIB_log");
			myTextView.setText("onProviderDisabled");
			
		}
	};
	//////////////////////////////////////
	
	///////////////////////////////////////
	// Define a listener that responds to GPS STATUS
	GpsStatus.Listener mygpsStatusListener = new GpsStatus.Listener() {
		public void onGpsStatusChanged(int event){
		
// plantage si on essaye d'afficher le texte 
//			TextView myTextView;
//			myTextView = (TextView) getView ("LIB_log");
//			myTextView.setText("event !!!!!!! ");
			
			
		}
	};
	
	///////////////////////////////////////
			

	// Register the listener with the Location Manager to receive location updates
	mylocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mylocationListener);
	mylocationManager.addGpsStatusListener(mygpsStatusListener);
	myTextView.setText("apres init listener");
	
	
}
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 09h56   #2
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Je me réponds à moi-même ! comme d'hab ...

PAS MOYEN D'AVOIR UN LISTENER !!!!

Conclusion : j'ai fait une application qui scan la loc et le statut du GPS et je vous indique ici comment faire ...

Il faut créer 4 procédures java native et les appeler dans une appli WM16

- pour vérifier si le GPS est activé
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;


/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

public static boolean isGpsEnabled()
{
	boolean test_GPS;

	////////////////////////////////////
	// Récupération du contexte et du location manager
	Context myContext     = getContexteApplication();
	LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
	
	// récupère isGPSenabled
	test_GPS = mylocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
	
	return test_GPS;

}
- pour initialiser le GPS (en fait on crée des listeners qui ne font rien !!!)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;


/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

public static void initGps()
{

	////////////////////////////////////
	// Récupération du contexte et du location manager
	Context myContext     = getContexteApplication();
	LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
	
	//////////////////////////////////////////
	// Define a listener that responds to location updates
	LocationListener mylocationListener = new LocationListener() {
		
		// lancement à vide
		public void onLocationChanged(Location location) {
			// Called when a new location is found by the network location provider.
			// ne fait rien
		}
		
		public void onStatusChanged(String provider, int status, Bundle extras) {
			// ne fait rien
		}
		
		public void onProviderEnabled(String provider) {
			// ne fait rien
		}
		
		public void onProviderDisabled(String provider) {
			// ne fait rien
		}
		
	};
	//////////////////////////////////////
	
	///////////////////////////////////////
	// Define a listener that responds to GPS STATUS
	GpsStatus.Listener mygpsStatusListener = new GpsStatus.Listener() {
		
		// lancement à vide
		
		public void onGpsStatusChanged(int event){
			
			// ne fait rien
			
		}
		
	};
	
	///////////////////////////////////////
	
	
	// Register the listener with the Location Manager to receive location updates
	mylocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mylocationListener);
	mylocationManager.addGpsStatusListener(mygpsStatusListener);
	
	
}
- pour scanner le status du GPS (dans WM16 on crée un timer sur une fonction qui va appeler régulièrement cette fonction native) : elle renvoie le status dans un String ....
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

// status
// max_sats;time_to_first_fix;nb_sats;nb_sats_fixed;snr;azimuth;elevation;fix/pasfix;

public static String getGpsStatus()
{
	
		//
		String chaine_status ="";
		
		////////////////////////////////////
		// Récupération du contexte et du location manager
		Context myContext     = getContexteApplication();
		LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
		
		int nb_sats;
		int nb_sats_fixed;
		int snr;
		int prn;
		int azimuth;
		int elevation;
		int max_sats;
		int time_to_first_fix;
		Iterator<GpsSatellite> iterator_sats;
		GpsSatellite sat_courant;
		
		// récupération de GPSStatus
		GpsStatus xGpsStatus = mylocationManager.getGpsStatus(null) ;
		
		// nombre de sats max
		max_sats = xGpsStatus.getMaxSatellites() ;
		chaine_status = chaine_status.concat(String.valueOf(max_sats));
		chaine_status = chaine_status.concat(";");
		
		// time to first fix
		time_to_first_fix = xGpsStatus.getTimeToFirstFix() ;
		chaine_status = chaine_status.concat(String.valueOf(time_to_first_fix));
		chaine_status = chaine_status.concat(";");
		
		// recupération des satellites
		Iterable<GpsSatellite> iSatellites = xGpsStatus.getSatellites() ;
		
		////////////////////////////
		// 1er parcours des satellites
		iterator_sats = iSatellites.iterator() ;
		nb_sats = 0 ;                                   // Satellite Count
		nb_sats_fixed = 0 ;								// Count satellites used in fix
		/////////////////////////
	
		/////////////////////
		// 1er parcours des satellites
		while ( iterator_sats.hasNext() )
		{
				// saut au suivant 
				sat_courant = (GpsSatellite) iterator_sats.next() ;
				
				// nombre
				nb_sats = nb_sats + 1 ;
				
				// SNR
				snr = (int) sat_courant.getSnr();
				
				// position
				azimuth = (int) sat_courant.getAzimuth();
				elevation = (int) sat_courant.getElevation();
				
				// nb sat accroché
				if ( sat_courant.usedInFix() ) {
						nb_sats_fixed = nb_sats_fixed + 1;
					}
				
			}
		
		// sauvegarde nombre sats
		chaine_status = chaine_status.concat(String.valueOf(nb_sats));
		chaine_status = chaine_status.concat(";");

		// sauvegarde nombre sats fix
		chaine_status = chaine_status.concat(String.valueOf(nb_sats_fixed));
		chaine_status = chaine_status.concat(";");	
		
		/////////////////////
		// 2eme parcours des satellites pour avoir le nombre
		iterator_sats = iSatellites.iterator() ;
		nb_sats = 0 ;                                   // Satellite Count
		nb_sats_fixed = 0 ;								// Count satellites used in fix
		
		///////////////////////////
		// parcours des satellites
		while ( iterator_sats.hasNext() )
		{
				// saut au suivant 
				sat_courant = (GpsSatellite) iterator_sats.next() ;
				
				// nombre
				nb_sats = nb_sats + 1 ;
				
				// PRN
				prn = (int) sat_courant.getPrn();
				chaine_status = chaine_status.concat(String.valueOf(prn));
				chaine_status = chaine_status.concat(";");	
		
				
				// SNR
				snr = (int) sat_courant.getSnr();
				chaine_status = chaine_status.concat(String.valueOf(snr));
				chaine_status = chaine_status.concat(";");	
		
				// position
				azimuth = (int) sat_courant.getAzimuth();
				chaine_status = chaine_status.concat(String.valueOf(azimuth));
				chaine_status = chaine_status.concat(";");	
			
				elevation = (int) sat_courant.getElevation();
				chaine_status = chaine_status.concat(String.valueOf(elevation));
				chaine_status = chaine_status.concat(";");	
			
				// nb sat accroché
				if ( sat_courant.usedInFix() ) {
					nb_sats_fixed = nb_sats_fixed + 1;
					chaine_status = chaine_status.concat("fix");
					chaine_status = chaine_status.concat(";");			
					}
				else {
					chaine_status = chaine_status.concat("pasfix");
					chaine_status = chaine_status.concat(";");			
				};
						
			};
		///////////////////////////
	
	return chaine_status;
		
	
}
- pour scanner la loc (même principe que pour le status ...) : on renvoie "location_NULL" si pas de loc ....
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;


/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

// location
// 	 hasAccuracy (y/n);int myAccuracy; hasAltitude; myAltitude;  hasBearing;myBearing; myLatitude;myLongitude; hasSpeed;mySpeed; myTime;

public static String getLastKnownLocation()
{
	// variables
	String chaine_status ="";
	Location myLocation;

	int myAccuracy;
	boolean hasmyAccuracy;

	int myAltitude;
	boolean hasmyAltitude;

	int myBearing;
	boolean hasmyBearing;

	int myLatitude;
	int myLongitude;
		
	int mySpeed;
	boolean hasmySpeed;
	
	long myTime;
	
	////////////////////////////////////
	// Récupération du contexte et du location manager
	Context myContext     = getContexteApplication();
	LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
	
	// récupère Location
	myLocation = mylocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
	
	if ( myLocation != null ) {
		
		// recupére infos
		
		// Accuracy
		hasmyAccuracy = myLocation.hasAccuracy();
		if (hasmyAccuracy){
			chaine_status = chaine_status.concat("y");
			chaine_status = chaine_status.concat(";");		
			myAccuracy = (int) myLocation.getAccuracy();
		}
		else {
			chaine_status = chaine_status.concat("n");
			chaine_status = chaine_status.concat(";");	
			myAccuracy = 0;			
		};
		chaine_status = chaine_status.concat(String.valueOf(myAccuracy));
		chaine_status = chaine_status.concat(";");
		
		// Altitude
		hasmyAltitude = myLocation.hasAltitude();
		if (hasmyAltitude){
					chaine_status = chaine_status.concat("y");
					chaine_status = chaine_status.concat(";");		
					myAltitude = (int) myLocation.getAltitude();
					}
		else {
				chaine_status = chaine_status.concat("n");
				chaine_status = chaine_status.concat(";");				
				myAltitude = 0;
			};
		chaine_status = chaine_status.concat(String.valueOf(myAltitude));
		chaine_status = chaine_status.concat(";");
			
		// Bearing
		hasmyBearing = myLocation.hasBearing();
		if (hasmyBearing){
					chaine_status = chaine_status.concat("y");
					chaine_status = chaine_status.concat(";");
					myBearing = (int) myLocation.getBearing();		
			}
		else {
					chaine_status = chaine_status.concat("n");
					chaine_status = chaine_status.concat(";");
					myBearing = 0;				
			};
		chaine_status = chaine_status.concat(String.valueOf(myBearing));
		chaine_status = chaine_status.concat(";");
	
		// Latitude et longitude
		myLatitude = (int) (myLocation.getLatitude()*1000000000);
		myLongitude = (int) (myLocation.getLongitude()*1000000000);
		
		// Speed
		hasmySpeed = myLocation.hasSpeed();
		if (hasmySpeed){
				chaine_status = chaine_status.concat("y");
				chaine_status = chaine_status.concat(";");
				mySpeed = (int) myLocation.getSpeed();
			}
		else {
				chaine_status = chaine_status.concat("n");
				chaine_status = chaine_status.concat(";");				
				mySpeed = 0;
			};
		chaine_status = chaine_status.concat(String.valueOf(mySpeed));
		chaine_status = chaine_status.concat(";");
		
		// time	
		myTime = myLocation.getTime();
		chaine_status = chaine_status.concat(String.valueOf(myTime));
		chaine_status = chaine_status.concat(";");
		
		/////////////	
		
	}
	
	else {		
		chaine_status = chaine_status.concat("location_NULL");
	}
	
	
	return chaine_status;
}
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 19h46   #3
Invité régulier
 
Inscription : mars 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 4
Points : 7
Points : 7
Par défaut recupération des coordonnées

Bonsoir courdi95,

j'ai intégré tes fonctions dans mon appli wm15, tout fonctionne bien sauf que je ne retrouve pas la latitude et la longitude dans le retour de la fonction getLastKnownLocation().

la fonction me retourne des chaines du genre :

y;4;y;58;y;237;y;1;1319305534000;

merci d'avance pour ton aide
fabien1106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 22h45   #4
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Le format des messages remontés vers WM est indiqué dans les commentaires de l'exemple :

Rappel : dans WM les méthodes appelées ne peuvent renvoyer que des éléments basisques (int, float ou chaine). J'ai choisi une chaine ...

// hasAccuracy (y/n);int myAccuracy; hasAltitude; myAltitude; hasBearing;myBearing; myLatitude;myLongitude; hasSpeed;mySpeed; myTime;

Dans ton cas "y;4;y;58;y;237;y;1;1319305534000;"

hasAccuracy : y
Accuracy : 4 mètres
hasAltitude : y
Altitude : 58 mètres
hasBearing : y
Bearing : 247° (tu devais être en mouvement ...)
myLatitude : 1319305534000/1000000000 ..... effectivement ..... Et il manque aussi la vitesse ....

Regarde si le code est correct ....


et il manque la longitude .....
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 15h11   #5
Invité régulier
 
Inscription : mars 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 4
Points : 7
Points : 7
je ne connait pas bien javascript et au risque de dire une bêtise j'ai l'impression que dans le code qui scanne la localisation la chaine retourné n'est pas rempli avec la latitude et la longitude. ( du moins dans le code que tu propose sur le forum parce que j'ai testé ton appli elle marche super bien)

Code :
1
2
3
4
5

// Latitude et longitude
		myLatitude = (int) (myLocation.getLatitude()*1000000000);
		myLongitude = (int) (myLocation.getLongitude()*1000000000);
merci d'avance
fabien1106 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 17h24   #6
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Oups .....

Effectivement, j'ai corrigé mon soft, mais pas ici !!!

PS : je n'ai pas pu faire la correction dans mon post initial ....

Voici le code corrigé :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;


/////
import android.location.GpsSatellite;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.GpsStatus.*;
import android.location.LocationManager;
import android.content.*;
import java.util.Iterator;

import android.util.Log;
import android.widget.TextView;

// location
/////////////////
// message renvoyé : 
// 	 hasAccuracy (y/n);int myAccuracy; hasAltitude; myAltitude;  hasBearing;myBearing; myLatitude;myLongitude; hasSpeed;mySpeed; myTime;
// ou "location_NULL"
/////////////////

public static String getLastKnownLocation()
{
	// variables
	String chaine_status ="";
	Location myLocation;

	int myAccuracy;
	boolean hasmyAccuracy;

	int myAltitude;
	boolean hasmyAltitude;

	int myBearing;
	boolean hasmyBearing;

	double myLatitude;
	double myLongitude;
		
	int mySpeed;
	boolean hasmySpeed;
	
	long myTime;
	
	////////////////////////////////////
	// Récupération du contexte et du location manager
	Context myContext     = getContexteApplication();
	LocationManager mylocationManager = (LocationManager) myContext.getSystemService(Context.LOCATION_SERVICE);	
	
	// récupère Location
	myLocation = mylocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
	
	if ( myLocation != null ) {
		
		// recupére infos
		
		// Accuracy
		// 1
		hasmyAccuracy = myLocation.hasAccuracy();
		if (hasmyAccuracy){
			chaine_status = chaine_status.concat("y");
			chaine_status = chaine_status.concat(";");		
			myAccuracy = (int) myLocation.getAccuracy();
		}
		else {
			chaine_status = chaine_status.concat("n");
			chaine_status = chaine_status.concat(";");	
			myAccuracy = 0;			
		};
		//2
		chaine_status = chaine_status.concat(String.valueOf(myAccuracy));
		chaine_status = chaine_status.concat(";");
		
		// Altitude
		// 3
		hasmyAltitude = myLocation.hasAltitude();
		if (hasmyAltitude){
					chaine_status = chaine_status.concat("y");
					chaine_status = chaine_status.concat(";");		
					myAltitude = (int) myLocation.getAltitude();
					}
		else {
				chaine_status = chaine_status.concat("n");
				chaine_status = chaine_status.concat(";");				
				myAltitude = 0;
			};
		// 4
		chaine_status = chaine_status.concat(String.valueOf(myAltitude));
		chaine_status = chaine_status.concat(";");
			
		// Bearing
		// 5 
		hasmyBearing = myLocation.hasBearing();
		if (hasmyBearing){
					chaine_status = chaine_status.concat("y");
					chaine_status = chaine_status.concat(";");
					myBearing = (int) myLocation.getBearing();		
			}
		else {
					chaine_status = chaine_status.concat("n");
					chaine_status = chaine_status.concat(";");
					myBearing = 0;				
			};
		// 6
		chaine_status = chaine_status.concat(String.valueOf(myBearing));
		chaine_status = chaine_status.concat(";");
	
		// Latitude et longitude
		// 7
		myLatitude = myLocation.getLatitude();
		chaine_status = chaine_status.concat(String.valueOf(myLatitude));
		chaine_status = chaine_status.concat(";");
		
		// 8
		myLongitude = myLocation.getLongitude();
		chaine_status = chaine_status.concat(String.valueOf(myLongitude));
		chaine_status = chaine_status.concat(";");
		
		// Speed
		// 9
		hasmySpeed = myLocation.hasSpeed();
		if (hasmySpeed){
				chaine_status = chaine_status.concat("y");
				chaine_status = chaine_status.concat(";");
				mySpeed = (int) myLocation.getSpeed();
			}
		else {
				chaine_status = chaine_status.concat("n");
				chaine_status = chaine_status.concat(";");				
				mySpeed = 0;
			};
		// 10
		chaine_status = chaine_status.concat(String.valueOf(mySpeed));
		chaine_status = chaine_status.concat(";");
		
		// time
		// 11	
		myTime = myLocation.getTime();
		chaine_status = chaine_status.concat(String.valueOf(myTime));
		chaine_status = chaine_status.concat(";");
		
		/////////////	
		
	}
	
	else {		
		chaine_status = chaine_status.concat("location_NULL");
	}
	
	
	return chaine_status;
}
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 10h06   #7
Invité régulier
 
Inscription : mars 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 4
Points : 7
Points : 7
je te remercie c'est parfait !
fabien1106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 14h42   #8
Invité de passage
 
Inscription : mars 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 5
Points : 3
Points : 3
Par défaut Merci merci.....

Merci à courdi95 de se repondre tout seul....
C'est franchement dur de trouver des exemples Windev
PC soft est moyen la dessus. (je suis nouveau: on a le droit de les critiquer sur ce site ou on est censuré comme sur leur forum?)

Developpeurs Windev >>> courage....
nikoniko555 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 19h00   #9
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Je pense au contraire qu'il faut les encourager ! et leur faire remonter les bugs, leur proposer des améliorations, etc ... PCSOFT fait un boulot terrible en nous proposant un framework unifié pour toutes ces plateformes.

On peut se partager ici, par exemple, nos découvertes et trouvailles.
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 09h37   #10
Invité de passage
 
Inscription : mars 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 5
Points : 3
Points : 3
Tu as tout a fait raison.....

Cela fait des années que j'utilise WD et le multi plateforme est vraiment un plus. Cependant je trouve dommage le comportement de PCSoft et je reste persuadé que quelques changement de leur part rendrait WD WM... incontournables.
Exemples:
-changer de marketing (absolument necessaire exit fille paint shop pro...)
-baisser un peu le prix
-accepter quelques critiques
-reactivité sur certain bugs connus (impression qui plante le soft depuis 5.5)
-faire plein de new fonctions (WD10 avait deja 99%des fonction de WD16!!!)
-creer une vrai communauté de developpeurs...

Windev ira loin c'est sur....
nikoniko555 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2012, 11h32   #11
Membre régulier
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 96
Points : 78
Points : 78
Citation:
Envoyé par nikoniko555 Voir le message
Tu as tout a fait raison.....

Cela fait des années que j'utilise WD et le multi plateforme est vraiment un plus. Cependant je trouve dommage le comportement de PCSoft et je reste persuadé que quelques changement de leur part rendrait WD WM... incontournables.
Exemples:
-changer de marketing (absolument necessaire exit fille paint shop pro...)
cela fait marrer mes collègues (et hurler mon épouse), mais visiblement c'est une manière pour eux de se démarquer ; si c'était aussi austère que leurs concurrrents, comment se démarquer ?
mais les développeurs vont au delà de cette apparence, en reconnaissant les vrais qualités du produit
et puis j'aime bien avoir un sourire au moment de la compilation :-)
Citation:
Envoyé par nikoniko555 Voir le message
-baisser un peu le prix
pas franchement cher vu le temps que cela fait gagner
Citation:
Envoyé par nikoniko555 Voir le message
-accepter quelques critiques
pas franchement d'accord, de mon côté ils répondent systématiquement
Citation:
Envoyé par nikoniko555 Voir le message
-reactivité sur certain bugs connus (impression qui plante le soft depuis 5.5)
pas franchement d'accord ... mais j'ai un contrat AD, cela doit compter
Citation:
Envoyé par nikoniko555 Voir le message
-faire plein de new fonctions (WD10 avait deja 99%des fonction de WD16!!!)
pas franchement d'accord avec toi : j'utilise Windev depuis la v15, et j'ai vu quand même pas mal de nouvelles fonctions peut-être pas dans WB mais surement dans WM
Citation:
Envoyé par nikoniko555 Voir le message
-creer une vrai communauté de developpeurs...
on a ce forum ici qui marche pas mal finalement ...
Citation:
Envoyé par nikoniko555 Voir le message

Windev ira loin c'est sur....
il suffit de les aider ...
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h23.


 
 
 
 
Partenaires

Hébergement Web