Android 在我';我离线了

Android 在我';我离线了,android,geolocation,gps,location,Android,Geolocation,Gps,Location,我正在做一些关于获取我的gps位置的研究。我使用的是谷歌地图API v2,所以为了得到我目前的位置,我使用了这个 locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); List<String> providers = locationManager.getAllProviders(); Criteria criteria = new Criteria(); bes

我正在做一些关于获取我的gps位置的研究。我使用的是谷歌地图API v2,所以为了得到我目前的位置,我使用了这个

    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    List<String> providers = locationManager.getAllProviders();
    Criteria criteria = new Criteria();
    bestProvider = locationManager.getBestProvider(criteria, false);

    Location location = locationManager.getLastKnownLocation(bestProvider);
locationManager=(locationManager)getSystemService(LOCATION\u服务);
List providers=locationManager.getAllProviders();
标准=新标准();
bestProvider=locationManager.getBestProvider(条件,false);
Location Location=locationManager.getLastKnownLocation(bestProvider);
因此,据我所知,
locationManager
中有一个列表,
getLastKnowLocation()
返回该列表中的最后一个条目。此外,如果此列表不为空,我可以在应用程序脱机时获取最后一个条目

我碰巧在周末关掉了wifi,并检查了它是否正常工作,但没有任何位置返回给我

因此,我的第一个问题是:如果暂时没有internet连接,列表中的条目可供我的应用程序检索多长时间

另外,我将检索的位置将是最后一个在我联机时修复的位置,对吗?所以,即使我能找回它,它也不会准确。那么,当我的手机处于脱机状态时,有没有其他方法可以获取我当前的gps位置?(即通过gps或gsm网络)
感谢您抽出时间。

首先,您不必连接到internet即可通过GPS获取位置更新。如果您的设备支持GPS,它将连接到GPS卫星,如果您在户外,您可以通过GPS获取位置更新。了解如何使用位置提供程序。

还要注意,如果未打开提供程序,getLastKnownLocation()将始终返回null。引用安卓文档

如果提供程序当前已禁用,则返回null


您可以将位置更新保留在带有时间戳的数据库中,以便以后获取。是的,但是如果我离线一段时间,它们仍然会过时。当您获得位置更新时,请优先保留该位置或数据库,然后它如何过时?我没有清楚地告诉你plsyes,但是通过gps定位需要用户在户外,而且可能需要15分钟。当我不在线的时候,还有其他更快的方法吗?我无法预测。无论我在家还是在户外,我通常都需要位置更新。关键是我能多快得到它们