GetLastLocation API如何在内部工作?即使在位置设置打开,它也会返回空



我已经阅读了一些有关此问题的问题,但是我没有找到所需的答案。我想了解GetLastLocation如何在内部工作。最后已知的位置缓存值已更新?

我们需要在需要获取设备的最后一个已知位置的地方。谁能解释GetLastLocation的工作原理?我已经看到GetLastLocation API返回null,即使设置设置已打开。同时,如果我检查了Google Map App,并且能够获得位置(当时它必须使用requestLocationupdates或任何其他API(。

在我的Nexus-5上,我观察到GetLastLocation即使在启动Google Map应用程序然后再次启动我的应用程序后,GetLastLocation也返回了NULL。即使在Google Map应用中正确检测到位置,GetLastLocation API返回null。

Android系统如何更新最后已知的位置?仅当某些应用程序通过requestLocationUpdates API要求位置请求时才更新吗?如果Android系统自动更新最后一个已知的位置,那么为什么GetLastLocation API返回null?

getLastLocation API获得最后已知的位置

要注意:

  1. 授予位置权限。

  2. 位置设置在

  3. 相同的代码在几个设备上工作,但在几个设备上失败。

  4. 我正在尝试从Google的Fusedlocation Providerapi和Android Framework Location Manager API中获得位置。

  5. 我已经检查了Stackoverflow上的所有现有问题

如果有人可以在什么情况下解释GetLastLocation API即使位置设置也可以返回NULL,那将是很棒的。有人知道这是如何在内部工作的吗?

getLastLocation :此方法将为您提供设备上的最后一个位置。

在某些情况下,如果您的设备没有最后一个位置,则它将返回null。

您应该在当前位置使用 OnLocationChanged 方法。

请参阅此处的示例,您会得到它https://developer.android.com/training/location/receive-location-updates.html

根据doc

公共抽象位置getlastLocation(googleapiclient客户端(

返回当前可用的最新位置。

如果不可用的位置,应该很少发生的位置,则无效 将退还。尊重 位置权限将返回。

此方法提供了一种简化的方法来获取位置。这是 特别适合不需要的申请 准确的位置,不想保持额外的逻辑 位置更新。

希望这些对您有帮助。

最新更新