【问题标题】:Android - How to find if device is receiving GSM signals or not?Android - 如何查找设备是否正在接收 GSM 信号?
【发布时间】:2015-10-08 01:35:51
【问题描述】:

我只是想检查我的设备是否正在接收 GSM 信号。我知道SignalStrength 类及其getGsmSignalStrength()。我曾与PhoneStateListeneronSignalStrengthsChanged() 合作过。

但即使我没有收到任何信号,我仍然会收到大于 0 的 GSM 信号强度,如屏幕截图所示:

查看信号电平,它甚至不低,它的红色交叉。 getGsmSignalStrength() 给我回了 16。(当前是不同的数字,请忽略它。)

【问题讨论】:

  • 您的手机上有有效的 SIM 卡吗?红十字很可能只是表示您的手机无法注册到任何网络,即使它正在后台进行测量。
  • 是的,我的 sim 工作得很好。我在这个运营商没有服务的特定位置。
  • 好的。与当时没有有效 SIM 卡的效果相同。您的手机将首先尝试注册到您的家庭 PLMN 运营商。如果失败,它将继续测量其他替代方案(这是您在测量中看到的),但您的手机受 SIM 政策的限制,不能注册到共享相同移动国家代码的任何其他网络(这就是为什么您会在信号栏中看到“无信号”)。国内漫游通常是被禁止的(有少数例外)。

标签: android gsm phone-state-listener signal-strength


【解决方案1】:

如果您只对来自运营商的 GSM 信号感兴趣,请使用来自CellIdentityGsm 的 getMnc() 来确定您正在测量的信号是否有效。

如果您仅在设备处于服务状态(即成功连接到网络)时才需要 GSM 信号,则使用ServiceState 检查器确定设备所处的状态。

根据上面的cmet,这些症状表明你正在测量其他运营商的GSM信号。

【讨论】:

  • 你也可以找到你想要的网络的MNChere
  • 感谢您的回复。我会检查并告诉你:)
  • 所以,您是说要检查我的设备是否正在接收信号,我必须根据Google Docs 检查getMnc() 是否返回Integer.MAX_VALUE ??
  • 这取决于你真正追求的是什么:如果你想测量 GSM 所以只有在设备注册到网络时才会发出信号,那么你需要检查设备处于什么状态。你应该使用in service checker 为此。这比检查 MNC 要好,因为 MNC 方法假定您知道正确的 MNC。如果您不执行此检查,那么您只是在设备尝试在后台连接到备用网络时从某个任意网络获取设备测量值。
  • 是的,ServiceState 就是我要找的东西,谢谢。请在您的答案中编辑此内容,我会将其标记为已更正。
猜你喜欢
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 2015-04-11
相关资源
最近更新 更多