WedX - журнал о программировании и компьютерных науках

Сбросить поставщика местоположения, чтобы использовать фактический GPS после насмешливого местоположения

Как новичок в кодировании, это мой первый ТАК вопрос, поэтому прошу прощения, если он немного груб по краям, а код менее чем эпичен.

Я издеваюсь над местоположениями в Android и могу успешно издеваться над GPS_PROVIDER. Однако, когда мое насмешливое приложение не запущено, местоположение не возвращается к фактическому положению пользователя. Есть ли способ перестать издеваться над местоположением, чтобы реальная позиция GPS возвращалась и обновлялась как обычно?

Код, который я использую для имитации местоположений (извлечение из активности):

try
    {
        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 50, 0, lis);

        lm.addTestProvider(LocationManager.GPS_PROVIDER, false, false, false, false, true, true, true, Criteria.POWER_LOW, Criteria.ACCURACY_FINE);

        loc = new Location(LocationManager.GPS_PROVIDER);
        loc.setLatitude(51.5219145);
        loc.setLongitude(-0.1285495);
        loc.setTime(System.currentTimeMillis());
        loc.setAccuracy(10);
        loc.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());


        t = new Timer();

        t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                loc.setTime(System.currentTimeMillis());
                loc.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
                lm.setTestProviderLocation(LocationManager.GPS_PROVIDER, loc);
            }
        }, 0, 2000);

    }catch(SecurityException e){
        e.printStackTrace();
    }

Я попытался удалить фиктивного поставщика местоположения с помощью:

lm.setTestProviderEnabled(LocationManager.GPS_PROVIDER, false);
lm.clearTestProviderLocation(LocationManager.GPS_PROVIDER);

if (lm.getProvider(LocationManager.GPS_PROVIDER) != null){
    Log.i("REMOVE", "test provider");
    lm.removeTestProvider(LocationManager.GPS_PROVIDER);
}

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

25.07.2016

Ответы:


1
 lm.removeTestProvider(LocationManager.GPS_PROVIDER);

При удалении провайдера просто дайте Gps получить свежее местоположение, тогда исправится. Вы можете проверить это

  1. Установите свое фиктивное местоположение для GPS
  2. Перейдите в GoogleMaps и посмотрите свое фиктивное местоположение (Gps должен быть включен)
  3. Верните свое приложение и перестаньте издеваться
  4. Снова зайдите в GoogleMaps и подождите, пока провайдер Gps не получит реальное местоположение. Это может занять некоторое время, когда я тестировал дома, это заняло 1-2 минуты, а на балконе всего 5 секунд.
13.08.2016
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]