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

时间:2013-04-10 11:05:30

标签: 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
}

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

谢谢!

2 个答案:

答案 0 :(得分:2)

TelephonyManager.PHONE_TYPE_NONE ,您无法发送短信。由于无线电网络需要发送短信。但是你可以使用一些基于IP的信使,比如什么应用程序,ebuddy就可以了

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

Galaxy TAB example,Can't make calls still phone type comes as PHONE_TYPE_CDMA ,因此在此类情况下需要额外检查行号,如上面的链接所示

答案 1 :(得分:2)

使用以下代码:

Boolean canSendSMS (Context context)
{
PackageManager pm = context.getPackageManager();
return (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) || pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CDMA))
}