我希望我的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);
取自GetBestProvider()
方法的文档:
返回最符合给定条件的提供程序的名称。只返回允许被调用活动访问的提供程序。如果多个提供者符合标准,则返回具有最佳准确度的提供者。
这听起来像你正在寻找的行为。