在以下代码段中:
Criteria criteria = new Criteria();
Criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
String provider = DP.lm.getBestProvider(criteria, true);
我尽量保持标准尽可能广泛,以便获得任何GPS位置提供商。我需要在没有可用的情况下检测到这种情况。
如何处理?在这种情况下,getBestProvider调用是否会返回null?
答案 0 :(得分:1)
返回最符合给定条件的提供程序的名称。 仅允许通过调用访问的提供程序 活动将被退回。如果有几家提供商符合标准,那么 返回最准确的一个。如果没有提供商满足 标准,标准按以下顺序放宽: 功率要求,精度,方位,速度,高度
注意要求 在此过程中不会删除货币成本。
因此,您仍然无法找到满足您所有要求的提供商。在这种情况下,返回null。这不在文档中,但我可以根据我的个人经验对其进行验证。
为了避免这种情况,如果方法getBestProvider返回null,则可以直接寻址Provider。所以你有一个备份。