Sie können Ihren Netzwerk-/WLAN-Standort mithilfe der Netzwerkanbietereigenschaft der LocationManager-Klasse ermitteln.
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Wo Listener eine Implementierung der android.location.LocationListener-Klasse ist.
Für Ihre zweite Frage können Sie die WIFI-MAC-Adresse bekommen, die ziemlich einzigartig ist, obwohl ich nicht sicher bin, was passiert, wenn das Gerät kein WIFI hat.
WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
String macAddress = wm.getConnectionInfo().getMacAddress();
Beachten Sie, dass dies erfordert, dass Sie das folgende in der Manifest-Datei
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
hinzufügen Wenn es nicht WiFi haben, würde man annehmen, die 'WifiInfo' von' wm.getConnectionInfo zurückgegebene Objekt() 'wäre' null', nein? In diesem Fall sollten Sie vor dem Aufruf von getMacAddress() 'einen Null-Check durchführen, damit Sie keine NRE erhalten. –
Ich würde genauso denken. Alles, was ich sagen will, ist, dass ich mir nicht sicher bin. Deshalb ist es eine gute Idee, ein paar Tests zu machen, anstatt den Code auf einer Annahme zu basieren. –