Android FusedLocationProviderClient.requestLocationUpdates (), возвращающий те же координаты местоположения - PullRequest
2 голосов
/ 19 апреля 2020

Я нашел два типа вопросов, подобных этому, на SO, но у обоих нет ответов.

Я использую FusedLocationProviderClient, чтобы определить местоположение моего устройства. Я запустил фоновый сервис, чтобы получить местоположение, используя requestLocationUpdates().

Даже когда приложение находится на переднем плане, возвращаемая широта и долгота методов не меняются.

Вот фрагмент того, как я использую класс:

private FusedLocationProviderClient fusedLocationClient
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
fusedLocationClient.requestLocationUpdates(new LocationRequest(), locationCallback, Looper.getMainLooper());

locationCallback - это просто метод, который будет печатать Долготу и Широту на консоли.

Все разрешения предоставлены, и я Проверяю разрешения в моем манифесте. Вот разрешения, которые я добавил:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:name=".App"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:usesCleartextTraffic="true"
    android:theme="@style/AppTheme">
    <activity android:name=".HomeActivity"></activity>
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name=".LocationService" />
</application>

LocationService - это служба, в которой я пытаюсь получить местоположение.

У кого-нибудь есть идея, в чем проблема ?? Я застрял на несколько часов!

1 Ответ

0 голосов
/ 19 апреля 2020

Вам следует прослушивать обновления местоположения, если вы хотите внести изменения.

https://developer.android.com/training/location/request-updates

Или оно будет возвращать все время одно и то же последнее известное местоположение, если приложение не запрашивает обновления местоположения.

...