2011-03-03 2 views
4

Android 1.6 이상에서 실행되는 앱이 있으며 네트워크 유형을 감지해야합니다.Android에서 WCDMA 및 HSDPA 감지

나는 HSDPA 및 WCDMA에 문제가 있습니다. 이전 버전은 API 버전 5+에서 TelephonyManager # getNetworkType에 대해 정의 된 상수 만 가지고 있으며, 후자는 전혀없는 것처럼 보입니다.

안드로이드 2.0 이전과 이후에이 네트워크 유형의 전화가 TelephonyManager # getNetworkType에 대해 무엇을 반환하는지 알 수 있습니까? (나는 HSDPA 네트워크에서 2.0 이상에서 적절한 상수를 반환한다고 가정하지만 나머지는 정의되지 않은 것처럼 보입니다 ...)

+0

이러한 네트워크에 어떤 값이 반환되는지, 또는이 부분이 더 큰 문제 (예 : 3G 대 2G 감지)인지 알아야합니까? – NT3RP

+0

둘 다. :) 2G, WiFi 또는 연결이 아닌 경우 3G라고 가정하고 더 큰 문제를 해결했습니다. 그러나 우리가 * 이러한 네트워크 유형에 *있을 때 무엇이 ​​반환되는지를 아는 것은 여전히 ​​좋을 것입니다 ... – Adrian

답변

6

TelephonyManager class in Android 1.6의 소스 코드에 따르면 HSPDA 및 WCDMA의 반환 값 NETWORK_TYPE_UNKNOWN (0)이어야합니다.

가 HSPDA : API 버전 5+
는 WCDMA (문서화되지는 다양한 네트워크 유형에 대해 Telephony Manager class documentation에 정의 된 상수를 보면 각 네트워크 유형이 API에 도입되었을 때

, 당신은 볼 수 있습니다)

내가 위키 피 디아에서 읽은 내용을 WCDMA에 따라 UMTS라는 이름이 붙어 있는데, 이는 WCDMA 전화가 NETWORK_TYPE_UMTS (3)을 반환한다는 것을 의미합니다.

요약

HSPDA :

  • 반환 NETWORK_TYPE_UNKNOWN (0) API 버전 4 (안드로이드 < = 1.6)
  • 반환 NETWORK_TYPE_HSDPA (8) API 버전에 5+ (안드로이드 2.0+)

WCDMA :

  • 반환 NETWORK_TYPE_UMTS (3) 이후 API 버전 1

편집 나는 또한 안드로이드가 가능한 오픈 소스이기 때문에 휴대폰 공급자가이 값을 무시했다고, 지적한다

기능을 수행하므로 트렁크 버전에서 벗어날 수 있습니다.