2013-04-10 57 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)) 
} 
相關問題