Вы можете получить свое местоположение на основе сети / WIFI, используя свойство сетевого провайдера класса LocationManager.
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Где слушатель является реализацией класса android.location.LocationListener.
По второму вопросу вы можете получить MAC-адрес WIFI, который является довольно уникальным, хотя я не уверен, что произойдет, если устройство не имеет WIFI.
WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
String macAddress = wm.getConnectionInfo().getMacAddress();
Обратите внимание, что для этого требуетсядобавьте следующее в ваш файл манифеста
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />