我可以使用LocationClient和LocationRequest获取位置更新或当前位置 .
但是如何知道是否获得该位置是使用gps提供商或网络提供商 .
这是示例代码https://developer.android.com/training/location/retrieve-current.html
我可以使用LocationClient和LocationRequest获取位置更新或当前位置 .
但是如何知道是否获得该位置是使用gps提供商或网络提供商 .
这是示例代码https://developer.android.com/training/location/retrieve-current.html
1 回答
显然,使用
LocationClient
和LocationRequest
时,不可能将优先级从源转移到获取location
的需求/需求方 .提供者是 Fused Location Provider :
资料来源:Location APIs Android
当他们第一次介绍这些api时,我试图解决这个问题,即使你是
location
对象的'provider',即
location.getProvider()
,它返回:"fused"作为值而不是GPS或NETWORK .仍然如果你想推断出位置的来源,不完全准确,但它可以与在LocationRequest的帮助下设置的PRIORITY相关
例:
我观察到,根据使用
LocationRequest
设置的PRIORITY,改变了GPS的使用 .Only for PRIORITY_HIGH_ACCURACY应用程序使用GPS(不仅仅作为其融合位置提供程序),因此对于其他两个PRIORITY设置,它'intelligently manages'融合源并提供尽可能准确的位置,从而节省电池/电量 .
请注意:
当设置为PRIORITY_HIGH_ACCURACY时,我并不是说应该启用GPS以获得该条件下的位置,只是如果启用了GPS,您可以直观地看到它正在该优先级下使用并且在您设置时未被使用不同的优先权 .
融合位置提供商使用GPS,WiFi,Cell Towers和Sensors来确定准确的位置估计 .
看看The Google IO on Location API,很不错 .
Useful presentation: Android Location
Blog: of 2013, but useful