Расположение макета Android на устройстве? - PullRequest
141 голосов
/ 28 марта 2010

Как я могу смоделировать свое местоположение на физическом устройстве (Nexus One)? Я знаю, что вы можете сделать это с помощью эмулятора на панели управления эмулятором, но это не работает для физического устройства.

Ответы [ 20 ]

3 голосов
/ 06 декабря 2012

Поддельное GPS-приложение от Google Play помогло мне. Просто убедитесь, что вы прочитали все указания в описании приложения. Вы должны отключить другие службы определения местоположения, а также запустить свое приложение после включения «Fake GPS». Отлично работал для того, что мне нужно.

Вот ссылка на приложение в GooglePlay: Поддельный GPS

2 голосов
/ 27 ноября 2013

Учебное пособие по Google для этого можно найти здесь, оно содержит примеры кода и объясняет процесс.

http://developer.android.com/training/location/location-testing.html#SendMockLocations

1 голос
/ 02 мая 2019

Добавить в манифест

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"
    tools:ignore="MockLocation,ProtectedPermissions" />

Макет функции местоположения

void setMockLocation() {
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    locationManager.addTestProvider(LocationManager.GPS_PROVIDER, false, false,
            false, false, true, true, true, 0, 5);
    locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);

    Location mockLocation = new Location(LocationManager.GPS_PROVIDER);
    mockLocation.setLatitude(-33.852);  // Sydney
    mockLocation.setLongitude(151.211);
    mockLocation.setAltitude(10);
    mockLocation.setAccuracy(5);
    mockLocation.setTime(System.currentTimeMillis());
    mockLocation.setElapsedRealtimeNanos(System.nanoTime());
    locationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, mockLocation);
}

Вам также необходимо включить макет местоположения в настройках разработчика вашего устройства. Если это недоступно, установите «приложение для определения местоположения» в своем приложении, как только вышеперечисленное будет реализовано.

1 голос
/ 25 июля 2016

Установить Поддельное приложение GPS https://play.google.com/store/apps/details?id=com.incorporateapps.fakegps.fre&hl=en

Параметры разработчика -> Выбор приложения с фиктивным местоположением (значит, выбрано приложение с поддельным местоположением).

Поддельное приложение GPS :

Двойную вкладку на карте для добавления -> нажмите кнопку воспроизведения -> Показать тост "Поддельное местоположение остановлено"

наконец, проверьте с помощью приложений Google Map.

1 голос
/ 19 марта 2015

Возможно, это не «программистский» подход, но если вы хотите сэкономить свое время и мгновенно получить рабочее решение, попробуйте одно из приложений, предназначенных для определения местоположения, доступных в Google Play:

Поддельный GPS-спуфер местоположения

Локации

Поддельное местоположение GPS

1 голос
/ 30 мая 2012

Если ваше устройство подключено к вашему компьютеру и вы пытаетесь изменить отправку GPS-шнуров через эмулятор, оно не будет работать. Это ЭМУЛЯТОР управления по причине.
Просто установите его, чтобы сообщить вам об изменении GPS.

lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);  

    ll = new LocationListener() {        
        public void onLocationChanged(Location location) {  
          // Called when a new location is found by the network location provider.  
            onGPSLocationChanged(location); 
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {       
            bigInfo.setText("Changed "+ status);  
        }

        public void onProviderEnabled(String provider) {
            bigInfo.setText("Enabled "+ provider);
        }

        public void onProviderDisabled(String provider) {
            bigInfo.setText("Disabled "+ provider);
        }
      };

Когда обновится GPS, перепишите следующий метод, чтобы сделать то, что вы хотите;

public void onGPSLocationChanged(Location location){  
if(location != null){  
    double pLong = location.getLongitude();  
    double pLat = location.getLatitude();  
    textLat.setText(Double.toString(pLat));  
    textLong.setText(Double.toString(pLong));  
    if(autoSave){  
        saveGPS();  
        }
    }
}

Не забудьте указать это в манифесте
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_MOCK_LOCATION

0 голосов
/ 29 декабря 2017

Воспользуйтесь очень удобным и бесплатным интерактивным симулятором местоположения для телефонов и планшетов на Android (названным CATLES).Он проверяет местоположение GPS на уровне системы (даже в приложениях Google Maps или Facebook) и работает как на физических, так и на виртуальных устройствах:

Веб-сайт: http://ubicom.snet.tu -berlin.de / catles / index.html

Видео: https://www.youtube.com/watch?v=0WSwH5gK7yg

0 голосов
/ 29 сентября 2017

Используйте это разрешение в файле манифеста

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">

android studio рекомендует, чтобы «Макетное местоположение запрашивалось только в тестовом или отладочном файле манифеста (обычно src / debug / AndroidManifest.xml)» просто отключить проверку

Теперь убедитесь, что вы проверили « Разрешить фиктивные местоположения » в настройках разработчика вашего телефона

Использовать LocationManager

locationManager.addTestProvider(mocLocationProvider, false, false,
                false, false, true, true, true, 0, 5);
locationManager.setTestProviderEnabled(mocLocationProvider, true);

Теперь установите местоположение, где вы хотите

Location mockLocation = new Location(mocLocationProvider); 
mockLocation.setLatitude(lat); 
mockLocation.setLongitude(lng); 
mockLocation.setAltitude(alt); 
mockLocation.setTime(System.currentTimeMillis()); 
locationManager.setTestProviderLocation( mocLocationProvider, mockLocation); 
0 голосов
/ 05 августа 2017

Я написал приложение, которое запускает WebServer (REST-Like) на вашем телефоне Android, чтобы вы могли установить GPS-положение удаленно . Веб-сайт предоставляет карту, на которой вы можете нажать, чтобы установить новую позицию, или использовать клавиши «wasd» для перемещения в любом направлении. Приложение было быстрым решением, поэтому почти нет ни пользовательского интерфейса, ни документации, но реализация проста, и вы можете посмотреть все в (только четырех) классах.

Репозиторий проекта: https://github.com/juliusmh/RemoteGeoFix

0 голосов
/ 09 октября 2011

Интересно, нужна ли вам сложная настройка Mock Location. В моем случае, как только я получил фиксированное местоположение, я вызывал функцию, чтобы сделать что-то с этим новым местоположением. В таймере создайте макет локации. И вместо этого вызовите функцию с этим местоположением. Зная все это в скором времени, GPS определит реальное текущее местоположение. Что в порядке. Если у вас достаточно большое время обновления.

...