【问题标题】:Checking a device can receive SMS or not检查设备是否可以接收短信
【发布时间】:2011-12-30 14:17:13
【问题描述】:

有些 SIM 卡没有电话号码,但您可以使用它通过蜂窝网络访问互联网。对于那种SIM卡,我认为他们无法接收短信,因为他们没有电话号码。

我无法检查手机是否可以接收短信。你对我有什么见解吗?

【问题讨论】:

  • 你开发的目的是什么?
  • 我认为android中没有这样的功能。但是你说你的实际要求是什么。
  • 感谢您的及时回复。就我而言,我有一个系统可以向设备发送短信进行验证。如果设备无法接收短信,我可能会跳过验证的那部分。所以我必须检查这种情况。

标签: android sms


【解决方案1】:

您可以使用 TelephonyManager,SIM 卡应该是这些状态之一。

TelephonyManager telMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int simState = telMgr.getSimState();
        switch (simState) {
            case TelephonyManager.SIM_STATE_ABSENT:
                // do something
                break;
            case TelephonyManager.SIM_STATE_NETWORK_LOCKED:
                // do something
                break;
            case TelephonyManager.SIM_STATE_PIN_REQUIRED:
                // do something
                break;
            case TelephonyManager.SIM_STATE_PUK_REQUIRED:
                // do something
                break;
            case TelephonyManager.SIM_STATE_READY:
                // do something
                break;
            case TelephonyManager.SIM_STATE_UNKNOWN:
                // do something
                break;
        }

【讨论】:

  • 我认为您的代码可以检查是否安装了 SIM 卡,但不能检查该 SIM 是否可以接收短信。
  • 我认为 case TelephonyManager.SIM_STATE_NETWORK_LOCKED: 给出它是否可以接收短信和拨打电话。
  • 我会试一试的!谢谢!
  • 刚试过,我的手机在正常模式下报TelephonyManager.SIM_STATE_READY,在飞行模式下报TelephonyManager.SIM_STATE_UNKNOWN。我认为它不会进入 TelephonyManager.SIM_STATE_NETWORK_LOCKED。
  • 发送您的 sim 状态到日志,然后您可以获得当前的 simstate。所以你可以照着做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 2011-01-22
  • 2011-05-21
  • 1970-01-01
相关资源
最近更新 更多