getBestProvider可以返回null吗?

时间:2011-08-23 07:22:18

标签: java android

在以下代码段中:

 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?

1 个答案:

答案 0 :(得分:1)

documentation说:

  

返回最符合给定条件的提供程序的名称。   仅允许通过调用访问的提供程序   活动将被退回。如果有几家提供商符合标准,那么   返回最准确的一个。如果没有提供商满足   标准,标准按以下顺序放宽:      功率要求,精度,方位,速度,高度

     

注意要求   在此过程中不会删除货币成本。

因此,您仍然无法找到满足您所有要求的提供商。在这种情况下,返回null。这不在文档中,但我可以根据我的个人经验对其进行验证。

为了避免这种情况,如果方法getBestProvider返回null,则可以直接寻址Provider。所以你有一个备份。