微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 当GSM返回’99’时如何确定信号强度?

我们有一个内部 Android应用程序,它是一个预先存在的JME应用程序的迁移.有一个问题是,当信号强度低时,该应用程序在尝试发送数据时,该应用程序正在抱怨应用程序耗尽设备电池(这是移动设备中的常见行为,而不是我们的直接问题)

数据需要及时发送,但不能立即发送,因此我们在发送数据之前检查信号强度.此检查使用了PhonestateListener和onSignalStrengthsChanged(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可能是错误的检查,我们需要尝试获取’实际数据传输网络强度’

解决方法

在使用来自多个供应商和多个(澳大利亚)操作符的多个手机进行测试后,这种行为似乎特定于三星galaxy S2,并且在之前的版本(galaxy S)上没有出现.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐