有没有办法返回“仅使用2G网络”的Android移动网络设置的值?
正在开发的应用程序会测量某个位置的互联网速度,但为了使其具有相关性,它必须知道用户是否故意将移动互联网限制为 2G。
我查看了 ConnectivityManager,但它仅提供有关背景数据设置或所有网络的信息。遍历它们表明,尽管启用了设置,但 HSPA 和 UMTStrue
返回isAvailable()
:
for (NetworkInfo netInfo : cm.getAllNetworkInfo()) {
Log.i(TAG, netInfo.getSubtypeName() + ": " + netInfo.isAvailable());
}
在这一切中我发现的唯一提示netInfo.getReason()
是启用设置时在 HSPA 和 UMTS 上返回“connectionDisabled”。问题是,当设置被禁用时,这些网络类型根本不一定会出现在列表中。对我来说,专门在 HSPA 和 UMTS 上对“connectionDisabled”使用字符串比较似乎不合适。
解决这个问题的正确方法是什么?