数据需要及时发送,但不能立即发送,因此我们在发送数据之前检查信号强度.此检查使用了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可能是错误的检查,我们需要尝试获取’实际数据传输网络强度’
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。