检查手机是否可以发送短信

Mar*_*vic 5 java android

我已经阅读了一些相关的问题,但大多数都是针对电话,而不是短信.到目前为止我发现的是:

TelephonyManager manager = (TelephonyManager) context
        .getSystemService(Context.TELEPHONY_SERVICE);
if (manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
    // I guess here are devices that are unable to send SMS
} else {
    // can send SMS
}
Run Code Online (Sandbox Code Playgroud)

这是真的,TelephonyManager.PHONE_TYPE_NONE的设备无法发送短信吗?我真的不明白TelephonyManager.PHONE_TYPE_NONE的描述,这是"没有电话无线电".

谢谢!

Akh*_*hil 2

是的,对于TelephonyManager.PHONE_TYPE_NONE,您无法发送短信。因为发送短信需要无线电网络。不过,您可以使用一些基于 IP 的通讯工具,例如 Whats app、ebuddy

如果您看到android.hardware.telephony (您在 Android 清单文件中使用uses-feature标记指定),您会注意到此功能下提到了发送/读取/写入 SMS。

Galaxy TAB 示例,无法拨打电话,但电话类型为 PHONE_TYPE_CDMA ,因此在这种情况下需要添加额外的线路号码检查

  • 不要测试线路号码,有些网络运营商禁止这样做。我的沃达丰网络手机的线路号码为空,并且可以发送短信。尝试制作 SMS Intent 并查找是否安装了处理它的应用程序。 (3认同)