2013-04-10 89 views
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的描述,即“无电话收音机”。

谢谢!

+1

检查了这一点:HTTP: //stackoverflow.com/questions/3814258/what-is-the-procedure-to-detect-if-an-android-device-has-sms-send-capability – 2013-04-10 11:26:55

回答

2

是与TelephonyManager.PHONE_TYPE_NONE您无法发送短信。由于无线网络需要发送短信。但是你可以使用一些基于IP的即时消息,就像什么应用程序,eBuddy网对他们

如果你看到android.hardware.telephony(其中指定使用采用特征在Android清单文件标签),你会发现发/读/写SMS在这个功能下被提及。

Galaxy TAB example,Can't make calls still phone type comes as PHONE_TYPE_CDMA,因此添加额外的检查为行号将需要这样的情况下,如在上面的链接

+0

好的,现在明白了,谢谢! – 2013-04-10 11:35:30

+2

不要测试线路号码,一些网络运营商禁止。我的手机与沃达丰网络有空行号码,它可以发送短信。尝试制作SMS Intent并找到,如果有应用程序来处理它安装。 – Pihhan 2013-04-10 11:47:48

2

使用以下代码所示:

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