1

특정 연결이 지원되는지 여부를 판단 할 때 CoverageInfo.getCoverageStatus()CoverageInfo.isCoverageSufficient()의 차이점에 대해 설명하겠습니다. 예를 들면 : 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 프로토콜을 통한 유효한 연결을 확인하는 데 사용하고 있습니다.

답변

3

getCoverageStatus()가 에게 COVERAGE_의 비트 마스크를 반환 플래그 *, isCoverageSufficient()가 반환하는 부울 진정한 장치가 몇 가지 가능한 경로를 통해, coverageType에 의해 지정된 범위의 유형이있는 경우; 그렇지 않으면 거짓. 코딩 방식에 차이가 없지만 hasMdsCoverage1에는 동등한 처리 방법이 추가로 있습니다. isCoverageSufficient가 더 편리 할 수 ​​있습니다.이 경우 getCoverageStatus가 다른 경우 더 편리 할 수 ​​있습니다. 전자가 후자를 부른다면 나는 놀라지 않을 것이다. 많은 다른 지원 라이브러리에는 그러한 예가 많이 있습니다.

관련 문제