在Android上检测WCDMA和HSDPA

Adr*_*ian 4 networking android

我有一个跨Android版本1.6+的应用程序,需要检测网络类型.

我遇到了HSDPA和WCDMA的问题 - 前者只有API版本5+中TelephonyManager#getNetworkType的定义常量,而后者似乎根本没有.

有谁知道这些网络类型的手机将在Android 2.0之前和之后为TelephonyManager#getNetworkType返回什么?(我假设在HSDPA网络上的2.0+,它将返回适当的常量,但其余的看起来未定义......)

NT3*_*3RP 7

根据Android 1.6中TelephonyManager类的源代码,HSPDA和WCDMA的返回值应为NETWORK_TYPE_UNKNOWN(0).

如果查看Telephony Manager类文档中为各种网络类型定义的常量,可以看到每种网络类型何时引入API:

HSPDA:API版本5+
WCDMA :(未记录)

基于我在维基百科上阅读的WCDMA,它也被称为UMTS,这意味着WCDMA手机将返回NETWORK_TYPE_UMTS(3).

摘要

HSPDA:

  • NETWORK_TYPE_UNKNOWNAPI Version 4中返回(0)(Android <= 1.6)
  • NETWORK_TYPE_HSDPA在API Version 5+(Android 2.0+)中返回(8)

WCDMA:

  • NETWORK_TYPE_UMTS从API Version 1开始返回(3)

编辑

我还应该指出,由于Android是开源的,手机提供商可能已经覆盖了这些价值和功能,因此它们可能会偏离中继版本.