我正在开发一个使用谷歌地图并跟踪用户位置的应用程序。我想改变“你在这里!”的可见性。当用户手动关闭定位服务或服务进入无法访问状态时标记。该方法可以返回位置服务是否启用的信息:
private boolean isLocationServicesEnabled() {
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER) || lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
return true;
}
return false;
}
但是,我不想一次检测定位服务的状态。每当用户打开或关闭位置服务时,我都应该检测到它并更改标记的可见性。简而言之,这个草率的伪代码解释了我想听的内容:
while application runs
if location services turn off
change marker visibility to false
else
change marker visibility to true
我没有找到没有 android.location.LocationListener 的方法来实现这个任务,只想使用 Fused Location Provider 来实现它。你有什么主意吗?如果您想查看,这是我使用的核心结构:
http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ (查看“完整代码”的标题)