我正在尝试LocationManager
。它在文档中仅列出了3个提供者GPS|NETWORK|PASSIVE_PROVIDER
。
我使用criteria
来获得最佳位置更新。
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
locationManager.requestLocationUpdates(0, 0, criteria, locationListener, null);
这样可行,但在onLocationChanged(Location location)
函数中,如果我检查location.getProvider()
使用的提供程序返回fused
我遇到的问题是,当我尝试获取最后一个已知位置并使用getBestProvider
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, true));
getBestProvider
返回gps
作为提供者和准确度42.475998,如果我手动输入"fused"
,则准确度为23.814
1-为什么getBestProvider
会返回gps
而不是fused
?
2-那么为什么NETWORK_PROVIDER
提供商没有像"fused"
这样的定义?它在Android
文档中没有定义?
不能直接使用?或者是因为谷歌不希望我们使用不需要谷歌播放服务的东西? :)
谢谢!