Установка макета местоположения программно в FusedLocationProviderClient - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь использовать макеты в моем приложении для тестирования.Для получения обновлений местоположения я использовал последнюю документацию для разработчиков Android здесь: https://developer.android.com/training/location/receive-location-updates

В этом учебном пособии в качестве примера используются FusedLocationProviderClient и locationClient.requestLocationUpdates (createLocationRequest (), locationCallback, null).

Проблемаявляется то, что я больше не могу использовать разрешение:

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

, потому что я получаю сообщение об ошибке «Разрешение предоставляется только системным приложениям» (я пробовал также в режиме отладки)

Так я попробовалследующий код, но он не работает:

    locationClient.setMockMode(true);

    String[] tokens = location.split(",");
    Location newLocation = new Location(LocationManager.GPS_PROVIDER);
    newLocation.setLatitude(Float.parseFloat(tokens[0]));
    newLocation.setLongitude(Float.parseFloat(tokens[1]));

    newLocation.setAccuracy(3.0f);

    newLocation.setTime(System.currentTimeMillis());


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        newLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
    }
    locationClient.setMockLocation(newLocation);

У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 13 июня 2018

Кажется, что добавление разрешения

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

для отладки манифеста Android работает, даже несмотря на то, что Android Studio говорит, что «разрешение предоставляется только системным приложениям».

Таким образом, решение состоит в том, что после добавления запустите приложение, затем перейдите в «Настройки» / «Параметры разработчика» / «Выбор приложения с фиктивным местоположением» -> здесь появится мое приложение, и я смогу выбрать его.

Я надеюсь, что другие могут подтвердить и использовать это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...