apBZH
Messages postés3Date d'inscriptionlundi 6 juillet 2009StatutMembreDernière intervention17 juillet 2009
-
6 juil. 2009 à 11:20
apBZH
Messages postés3Date d'inscriptionlundi 6 juillet 2009StatutMembreDernière intervention17 juillet 2009
-
17 juil. 2009 à 11:37
Bonjour à tous,
je réalise un programme de localisation géographique à l'aide de cell-id sur téléphone mobile.
Pour pouvoir utiliser la technique de localisation que l'on souhaite (cell-id, Satellite ..) on m'a expliqué qu'il faut redéfinir le critère CRITERIA puis ensuite vérifier qu'on utilise la bonne méthode en récupérant dans la fonction LocationUpdated la méthode le Location (à partir du second argument de la fonction "Location") :
public void startapp
{
Criteria crit = new Criteria()
// ensuite on rédéfini le Criteria
// ex
crit.setCostAllowed(false);
}
private void locationUpdated(LocationProvider arg0, Location arg1)
{
int i = arg1.getLocationMethod;
System.out.println(i);
}
Ensuite l'entier i que l'on récupère est le résultat d'une opération OR entre les différentes méthodes utilisée : Assisted, Unassisted, AngleOfArrival, Cell-Id, Satellit, ShortRange, TimeDifference, TimeOfArrival, NetWorkBased ou TerminalBased. Chaque méthode est représentée par un entier en héxadécimal.
Mon problème est le suivant :
le seul élément que j'ai réussi à faire agir sur le critère est le setCostAllowed(true/false) qui me renvoie un int (en héxadécimal) de 0x40001 ou de 0x90001.
0x40001 correspond à Assisted (0x40000) et Satellit (0x1)
0x90001 correspond à Unassisted (0x80000), TerminalBased(0x10000) et Satellit (0x1)
Sauriez-vous comment définir le critère afin d'obtenir une méthode qui utiliserait non pas le satellite mais le cell-id, soit avec un numéro (je pense) de 0x10008 (soit terminalBased 0x1000 et leCell-ID 0x08)