我正在尝试基于 GPS 或网络获取位置,但问题是如果我基于 GPS 位置获取位置详细信息需要花费大量时间。因此,我想实现一种方法,如果 GPS 信号非常低,则使用网络提供商获取位置。如何确定 GPS 信号?如果这有问题吗?GPS信号即使在开阔的天空中也总是很低,因此它总是会到达网络提供商?
我该如何解决这个问题?
我正在尝试基于 GPS 或网络获取位置,但问题是如果我基于 GPS 位置获取位置详细信息需要花费大量时间。因此,我想实现一种方法,如果 GPS 信号非常低,则使用网络提供商获取位置。如何确定 GPS 信号?如果这有问题吗?GPS信号即使在开阔的天空中也总是很低,因此它总是会到达网络提供商?
我该如何解决这个问题?
添加 lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, ll); 它将开始使用网络获取 gps。使用 location.getProvider() 您应该能够区分它是 gps 还是网络。
您是使用 LocationManager.GetLastKnownLocation 轮询位置,还是通过 requestLocationUpdates 异步获取更新?
首先,使用 GPS_PROVIDER 查询位置。如果返回 null,则查询 NETWORK_PROVIDER
如果您收到通知,请同时请求。然后您可以实现 onStatusChanged 来判断 GPS 何时可用,如果可用则忽略网络更新,或者如果不可用则使用它们(位置对象告诉您提供者是什么)。