在尝试确定是否支持特定连接时,我经常会讨论coverageinfo.getcoveragestaus()和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.iscoveragesufficient(),因为这在代码中看起来更干净,但在这样做之前,我希望确保不会错过getcoveragestaus()提供的任何东西。
注意:我使用这个来检查通过bis、mds、wap和wap2协议的有效连接。

最佳答案

getCoverageStatus()返回Coverage\uFlags*的位掩码,如果设备在某些可用路由上具有CoverageType指定的覆盖类型,则isCoverageSufficient()返回布尔值true;否则返回false。当用这种方式编码时没有区别,但是在hasmdscoverage1中,有额外的处理使它们等价。在这种情况下,肥胖可能更方便,而在其他情况下,肥胖可能更方便。如果前者叫后者,我不会感到惊讶。在许多不同的支持库中都有许多这样的例子。

关于http - CoverageInfo.getCoverageStatus()与CoverageInfo.isCoverageSufficient()相同吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1743223/

10-09 06:26