GSM返回'99'时如何确定信号强度?

Posted

技术标签:

【中文标题】GSM返回\'99\'时如何确定信号强度?【英文标题】:How to determine signal strength when GSM returns '99'?GSM返回'99'时如何确定信号强度? 【发布时间】:2011-11-15 19:18:52 【问题描述】:

我们有一个内部 android 应用程序,它是对现有 JME 应用程序的迁移。存在一个问题,现场用户抱怨应用程序在信号强度低时尝试发送数据时耗尽了设备电池(这是移动设备中的常见行为,而不是我们的直接问题)

数据需要及时发送,但不是立即发送,因此我们在发送数据之前检查了信号强度。此检查使用了 PhoneStateListeneronSignalStrengthsChanged(SignalStrength signalStrength) 回调,正如其他许多类似的 SO 问题和文章所推荐的那样。

这在我自己的手机(在澳大利亚 Telstra 上运行)上运行良好,SignalStrength.getGsmSignalStrength() 按预期返回来自0-31 的值。然而,在另一个网络(Optus Australia)上运行的手机上,它报告 GSM 为真,但在确定信号强度时返回 99(即错误代码)。我相信这仍然是正确的行为,因为 GSM 是 2G 数据,而应该检查的是 3G UMTS/HSPA。 UMTS/HSPA是手机上Elixir应用上报的网络,和预期的一样。我们也有未经证实的报告称,我的网络(Telstra Australia)报告 GSM 强度不足,无法从应用程序发送数据,但能够毫无问题地浏览互联网和执行其他数据活动。这让我相信无论如何检查 GSM 强度是错误的。

我正在同一网络上的其他 Android 手机上运行测试(仍在尝试访问某些设备),但我们确实能够浏览互联网并从我们的应用程序发送 (HTTP) 数据,如果我们检查信号强度并且总是收到'99',它就会失败。在 Optus 上,SignalStrength.toString() 在对多个塔进行几天的测试后总是返回 99 -1 -1 -1 -1 -1 -1 gsm 3

最近的(未答复的)SO 线程是这个:Getting Signal Strength RSCP and Ec/Io from a phone served by a HSPA network

总结:

Telstra 连接报告 GSM 为真并返回可用信号强度 Optus 连接报告 GSM 为真,但始终报告“99” GSM 无论如何可能是错误的检查,我们需要尝试获取'实际数据传输网络强度'

【问题讨论】:

【参考方案1】:

在使用来自多家供应商和多家(澳大利亚)运营商的多款手机进行测试后,这种行为似乎是三星 Galaxy S2 特有的,而在之前的版本 (Galaxy S) 上并未出现。

【讨论】:

我这里也遇到了同样的问题,如果你有什么解决办法或者变通方法,请与我分享。 不幸的是,我们发现的唯一解决方案是在应用程序上设置“始终发送”设置,无论 GSM 强度如何,该设置始终发送数据。 我在三星 Galaxy Tab 7.7 上也遇到了这个问题。出现问题时,您使用的是哪个版本的 Android?当您升级到 Android 4.x 时,问题是否会消失? (galaxy 选项卡在 Android 3.x 上运行) 根据en.wikipedia.org/wiki/Samsung_Galaxy_S_II#Software_and_services,SII 在 2012 年 3 月从 2.x 升级到 4.x。没有 3.x。如果信号强度对 4.x 不起作用,那么我想可能是设备不想返回信号强度。

以上是关于GSM返回'99'时如何确定信号强度?的主要内容,如果未能解决你的问题,请参考以下文章

Android 获取手机信号强度

android里有获取周围所有wifi ap 的信号强度的方法么?

无线信号强度测试软件WirelessMon

未连接蜂窝网络时,Android 仍会检测蜂窝信号强度

android中如何获取WIFI信号的强度?

以编程方式获取 iPhone 的运营商信号强度