Это сработало для меня (Android Studio):
Отключение GPS и WiFi отслеживания на телефоне. На Android 5.1.1 и ниже выберите «Включить фиктивные местоположения» в Настройках разработчика.
Создайте копию своего манифеста в каталоге src / debug. Добавьте к нему следующее (вне тега «application»):
использует разрешение android: name = "android.permission.ACCESS_MOCK_LOCATION"
Настройка фрагмента карты под названием «карта». Включите следующий код в onCreate ():
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll = new MyLocationListener();
if (lm.getProvider("Test") == null) {
lm.addTestProvider("Test", false, false, false, false, false, false, false, 0, 1);
}
lm.setTestProviderEnabled("Test", true);
lm.requestLocationUpdates("Test", 0, 0, ll);
map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng l) {
Location loc = new Location("Test");
loc.setLatitude(l.latitude);
loc.setLongitude(l.longitude);
loc.setAltitude(0);
loc.setAccuracy(10f);
loc.setElapsedRealtimeNanos(System.nanoTime());
loc.setTime(System.currentTimeMillis());
lm.setTestProviderLocation("Test", loc);
}
};
Обратите внимание, что вам, возможно, придется временно увеличить "minSdkVersion" в файле gradle вашего модуля до 17, чтобы использовать метод "setElapsedRealtimeNanos".
Включите следующий код в основной класс деятельности:
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
// do whatever you want, scroll the map, etc.
}
}
Запустите ваше приложение с AS. На Android 6.0 и выше вы получите исключение безопасности. Теперь перейдите в «Параметры разработчика» в «Настройках» и выберите «Выбор приложения для определения местоположения». Выберите ваше приложение из списка.
Теперь, когда вы нажимаете на карту, onLocationChanged () срабатывает с координатами вашего касания.
Я только что понял это, так что теперь мне не нужно бродить по окрестностям с телефонами в руках.