2011-01-03 3 views

Répondre

1

Vous pouvez obtenir votre emplacement basé sur le réseau/WIFI en utilisant la propriété du fournisseur de réseau de la classe LocationManager.

LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener); 

Où listener est une implémentation de la classe android.location.LocationListener. Pour votre deuxième question, vous pouvez obtenir l'adresse MAC WIFI qui est assez unique, bien que je ne sache pas ce qui se passe si l'appareil n'a pas de WIFI.

WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
String macAddress = wm.getConnectionInfo().getMacAddress(); 

Notez que cela vous oblige à ajouter ce qui suit à votre fichier manifeste

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
+0

Si elle ne dispose pas de connexion Wi-Fi, on peut supposer le 'WifiInfo' objet retourné de' wm.getConnectionInfo() 'serait' null', non? Dans ce cas, vous voudrez faire une vérification nulle avant d'appeler 'getMacAddress()' de sorte que vous n'obteniez pas de NRE. –

+0

Je pense la même chose. Tout ce que j'essaie de dire, c'est que je ne suis pas sûr, alors c'est une bonne idée d'exécuter quelques tests au lieu de baser votre code sur une hypothèse. –

Questions connexes