【发布时间】:2018-11-25 00:06:42
【问题描述】:
我正在使用 FusedLocationProviderClient 发出位置请求。我已将计时器保持 30 秒,以检查是否在该时间范围内收到位置。 代码如下:
public void requestLocationUpdates() {
initializeLocationRequest();
mFusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);
startTimer();
}
private void initializeLocationRequest() {
mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(mContext);
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(5000);
mLocationRequest.setFastestInterval(5000);
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
synchronized (SilentCurrentLocationProvider.this) {
super.onLocationResult(locationResult);
Location location = locationResult.getLastLocation();
}
};
}
private void startTimer() {
if (mTimeout < 1) {
mTimeout = mDefaultTimeout;
}
mTimer = new Timer();
mTimer.schedule(new LocationTimer(), mTimeout * 1000);
}
在少数设备上,位置不会出现。在进一步调试时,我发现 LocationRequest 和 LocationCallback 正在创建,但它没有进入 onLocationResult() 方法。
由于这是实时产品的一部分,因此很难在每台设备上进行调试。 即使我尝试重新启动手机,但它不起作用。用户尝试了其他应用程序,如 Ola,并且位置正在出现。
位置权限也已授予。
谁能告诉我这个问题的可能原因?
【问题讨论】:
-
您检查过您的权限吗?或者我会说运行时权限?
-
是的,已授予位置权限
-
我有同样的问题,任何更新都会很有帮助
-
我在其他设备的乐视手机中遇到了这个问题,它工作正常,你是怎么解决的?
标签: android google-location-services fusedlocationproviderclient