вы можете получить адрес и от адреса получить широту и долготу:
Geocoder coder = new Geocoder(this);
List<Address> address;
try {
address = coder.getFromLocationName(strAddress,5);
if (address == null) {
return null;
}
Address location = address.get(0);
location.getLatitude();
location.getLongitude();
}
А потом сравнить его с вашим адресом
if (distance(mylocation.latitude, mylocation.longitude, location.getLatitude(), location.getLongitude()) < 0.1) { // if distance < 0.1
// launch the activity
}else {
finish();
}
/** calculates the distance between two locations in MILES */
private double distance(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75; // in miles, change to 6371 for kilometers
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double sindLat = Math.sin(dLat/2);
double sindLng = Math.sin(dLng/2);
double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
* Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
return dist;
}
EDIT: Как @FelipeMosso говорил вы также можете использовать distanceBetween, который вычисляет приблизительное расстояние в метрах между двумя точками или distanceTo, которое дает вам расстояние между вами и назначение.
Что произойдет, когда пользователь пытался запустить приложение и не было в пределах нужного диапазона? – Prmths
Возможно, это могло бы помочь вам: http://stackoverflow.com/questions/3652951/google-maps-api-get-coordinates-of-address. Вам в основном нужно сравнить два набора координат и выяснить, находятся ли эти две пары достаточно близко друг к другу. – Izmaki
@Prmths приложение просто не откроется :) –