5

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

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 的描述,即“没有电话收音机”。

谢谢!

4

2 回答 2

2

是的,使用TelephonyManager.PHONE_TYPE_NONE您不能发送 SMS。因为发送 SMS 需要无线电网络。但是,您可以在它们上使用一些基于 IP 的信使,例如 whats app、ebuddy

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

Galaxy TAB 示例,无法拨打电话,但电话类型为 PHONE_TYPE_CDMA,因此此类情况需要添加额外的线路号检查,如上链接所示

于 2013-04-10T11:29:31.100 回答
2

使用以下代码:

Boolean canSendSMS (Context context)
{
PackageManager pm = context.getPackageManager();
return (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) || pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CDMA))
}
于 2015-01-05T03:21:52.023 回答