0

我希望我的 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);
4

2 回答 2

0

取自该GetBestProvider()方法的文档:

返回最符合给定条件的提供者的名称。只有被调用活动允许访问的提供者才会被返回。如果多个提供者符合标准,则返回准确度最高的提供者。

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

于 2012-04-06T15:26:36.900 回答
0

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

然后你必须为这两个提供者注册 -provider = LocationManager.GetBestProvider(criteria, true);将返回最好的可用提供者 - 它不会检查这个提供者是否真的可以得到修复。请参阅此处此处以向两家提供商注册

于 2013-07-15T13:02:09.310 回答