LocationManager GetBestProvider标准

问题描述 投票:0回答:2

我希望我的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);
android xamarin.android
2个回答
0
投票

取自GetBestProvider()方法的文档:

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.