LocationManager GetBestProvider标准

时间:2012-04-06 14:53:29

标签: android xamarin.android

我希望我的LocationManager首先尝试获取Fine_Location,然后如果不可用则获取Coarse_Location。是否可以为Criteria Accuracy属性设置此类型的层次结构?

const string context = LocationService;
LocationManager locationManager = (LocationManager)GetSystemService(context);
Criteria criteria = new Criteria() { Accuracy = Accuracy.Fine | Accuracy.Coarse };
string provider = locationManager.GetBestProvider(criteria, true);

2 个答案:

答案 0 :(得分:0)

取自GetBestProvider()方法的文档:

  

返回最符合给定条件的提供程序的名称。   仅允许通过调用访问的提供程序   活动将被退回。 如果有多家提供商符合标准,那么   返回最准确的一个。

这听起来像你正在寻找的行为。

答案 1 :(得分:0)

  

我希望该位置尽可能准确,但如果无法获取GPS信号,我不希望它返回null

然后您必须注册两个提供商 - provider = LocationManager.GetBestProvider(criteria, true);将返回最佳可用提供商 - 它不会检查此提供商是否可以实际获得修复。有关向两家提供商注册的信息,请参阅herehere