Android FusedLocationProviderClient.requestLocationUpdates()返回相同的位置坐标。

问题描述 投票:2回答:1

我在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 是我想获取位置的服务。

有谁知道问题出在哪里吗?我已经卡了好几个小时了!

java android fusedlocationproviderapi android-fusedlocation
1个回答
0
投票

如果你想有变化,你应该监听位置更新。

https:/developer.android.comtraininglocationrequest-updates。

或者,如果没有应用要求更新位置,它将一直返回相同的最后已知位置。

© www.soinside.com 2019 - 2024. All rights reserved.