CoverageInfo.getCoverageStatus () и CoverageInfo.isCoverageSufficient (), они одинаковы? - PullRequest
1 голос
/ 16 ноября 2009

Пытаясь определить, поддерживается ли конкретное соединение, я запутался в разнице между 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.

1 Ответ

3 голосов
/ 17 ноября 2009

getCoverageStatus () возвращает Битовую маску COVERAGE_ flags *, где isCoverageSufficient () возвращает логическое значение true, если устройство имеет тип покрытия, заданный coverType, по некоторому доступному маршруту;в противном случае ложь .При кодировании, как у вас, нет никакой разницы, но в hasMdsCoverage1 у вас есть дополнительная обработка, которая делает их эквивалентными.isCoverageSufficient может быть более удобным в этом случае, getCoverageStatus может быть более удобным в других.Я не удивлюсь, если первый позвонит второму.Есть много таких примеров в разных библиотеках поддержки.

...