【发布时间】:2018-11-04 11:14:56
【问题描述】:
在应用程序中我正在使用 FusedLocationProviderClient
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
我的位置请求是
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
当设备定位模式处于仅 GPS 模式时,此请求似乎没有获得任何位置更新。
我可以发出位置设置请求并要求用户将位置模式更改为高精度以支持位置请求。
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
builder.addLocationRequest(mLocationRequest);
mLocationSettingsRequest = builder.build();
它将向用户显示一个对话框并要求他更改定位模式,但此更改永久地将设备定位模式更改为高精度。即使在应用程序关闭后,更改保持不变并消耗电池。
有没有办法只为应用程序更改位置模式? 例如,当应用程序运行时,它可以处于高精度模式,而当应用程序关闭时,它将返回到设备之前的任何模式。
【问题讨论】:
标签: android google-play-services fusedlocationproviderapi