1

在尝试确定是否支持特定连接时,我对CoverageInfo.getCoverageStatus()CoverageInfo.isCoverageSufficient()之间的区别感到困惑。例如:

// check mds with getCoverageStatus() and bitwise check
boolean hasMdsCoverage1 = (CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS;
// check mds with isCoverageSufficient()
boolean hasMdsCoverage2 = CoverageInfo.isCoverageSufficient(CoverageInfo.COVERAGE_MDS);

hasMdsCoverage1和hasMdsCoverage2似乎都返回相同的结果,但为什么有两种不同的方法呢有没有他们会返回不同结果的情况?

理想情况下,我想使用CoverageInfo.isCoverageSufficent(),因为这在代码中看起来更干净,但在我这样做之前,我想确保我不会错过getCoverageStatus()将提供的任何内容。

注意:我使用它来检查通过 BIS、MDS、WAP 和 WAP2 协议的有效连接。

4

1 回答 1

3

getCoverageStatus() 返回COVERAGE_flags * 的位掩码,其中 isCoverageSufficient()在某些可用路由上,如果设备具有 coverageType 指定的覆盖类型,则返回布尔值 true;否则为假。以您的方式编码时没有区别,但是在 hasMdsCoverage1 中,您有额外的处理使它们等效。在这种情况下,isCoverageSfficient 可能更方便,而 getCoverageStatus 在其他情况下可能更方便。如果前者调用后者,我不会感到惊讶。许多不同的支持库中有许多这样的示例。

于 2009-11-17T14:35:43.250 回答