android - 在 Android 上检测 WCDMA 和 HSDPA

标签 android networking

我有一个在 Android 1.6+ 版本上运行的应用程序,需要检测网络类型。

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

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

最佳答案

根据源代码为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)。

总结

高速数据传输:

  • 在 API 版本 4 (Android <= 1.6) 中返回 NETWORK_TYPE_UNKNOWN (0)
  • 在 API 版本 5+ (Android 2.0+) 中返回 NETWORK_TYPE_HSDPA (8)

WCDMA:

  • 自 API 版本 1 起返回 NETWORK_TYPE_UMTS (3)

编辑

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

关于android - 在 Android 上检测 WCDMA 和 HSDPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5180679/

相关文章:

android - 如何检测物体的外框

android - 如何制作像 Chrome 中那样的溢出菜单?

c++ - 将字符缓冲区类型转换为来自套接字的结构

python - 如何指定 Django 测试服务器应该监听哪个 eth 接口(interface)?

r - 如何从数据帧创建边缘列表(展开,group_by?)

c++ - 在 tcp 中提升 asio 异步处理程序

android - 如何检测其他应用的权限访问?

android - RecyclerView with nested RecyclerView - 使嵌套的 RecyclerView 作为一个整体 View 可点击

Android:如何在ImageView中显示视频缩略图?

networking - 以太网和 OSI 模型