代码之家  ›  专栏  ›  技术社区  ›  AtariPete

coverageinfo.getcoveragestatus()与coverageinfo.iscoveragesufficient()是否相同?

  •  1
  • AtariPete  · 技术社区  · 15 年前

    在试图确定是否支持特定连接时,我同时讨论了 coverageinfo.getcovergestatus()。 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);
    

    两个 HASMDS覆盖1 HASMDS覆盖2 似乎返回了相同的结果,但为什么有两种不同的方法?有没有一种情况会让他们返回不同的结果?

    理想情况下我想用 coverageinfo.iscoveragesufficient()。 因为这在代码中看起来更干净,但是在我这样做之前,我想确保我不会错过任何 getcovergestatus()号 会提供。

    注意:我使用这个来检查通过bis、mds、wap和wap2协议的有效连接。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Richard    15 年前

    getCovergeStatus()返回 覆盖的位掩码_ flags*,其中iscovergesufficient()返回布尔值 如果设备具有coverage type指定的覆盖类型,则在某些可用路由上为true;否则为false . 当以您拥有的方式编码时,没有区别,但是在hasmdscoverage1中,您有额外的处理使它们等效。在这种情况下,iscovergesufficient可能更方便,getcovergestatus在其他情况下可能更方便。如果前者打电话给后者,我不会感到惊讶。在许多不同的支持库中有许多这样的例子。