我有一款适用于Android版本1.6+的应用,需要检测网络类型。
我遇到了HSDPA和WCDMA的问题 - 前者只有API版本5+中TelephonyManager#getNetworkType的定义常量,而后者似乎根本没有。
有没有人知道这些网络类型的手机会在Android 2.0之前和之后返回TelephonyManager#getNetworkType? (我假设在HSDPA网络上的2.0+,它将返回适当的常量,但其余的显示未定义...)
答案 0 :(得分:7)
根据TelephonyManager class in Android 1.6的源代码,HSPDA和WCDMA的返回值应为NETWORK_TYPE_UNKNOWN
(0)。
如果查看Telephony Manager class documentation中为各种网络类型定义的常量,您可以看到每种网络类型何时引入API:
HSPDA:API版本5+
WCDMA :(未记录)
基于我在维基百科上WCDMA所读到的内容,它的名称也是UMTS,这意味着WCDMA手机将返回NETWORK_TYPE_UMTS
(3)。
<强>摘要强>
HSPDA:
NETWORK_TYPE_UNKNOWN
(0)
NETWORK_TYPE_HSDPA
(8)
WCDMA:
NETWORK_TYPE_UMTS
(3)修改强>
我还应该指出,由于Android是开源的,手机提供商可能已经覆盖了这些价值和功能,因此它们可能会偏离中继版本。