2013-04-10 11 views
5

Zaten ilgili bazı sorularımı okudum, ancak çoğu SMS'yi değil, çağrıları hedefliyordu. Şimdiye kadar ne buldum geçerli:Bir telefonun SMS gönderebileceğini kontrol edin

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 ile bu doğru, cihazlar mı vardır SMS göndermek mümkün? "Telefon telsizi" olan TelephonyManager.PHONE_TYPE_NONE öğesinin açıklamasını gerçekten anlamıyorum.

Teşekkürler!

+1

Kontrol şuna: http: //stackoverflow.com/questions/3814258/what-is-the-procedure-to-detect-if-an-android-device-has-sms-send-capability –

cevap

2

TelephonyManager.PHONE_TYPE_NONE ile SMS gönderemezsiniz. SMS göndermek için radyo şebekesi gereklidir. Ancak ebuddy üzerlerinde, app neyin gibi bazı IP tabanlı haberciler kullanabilirsiniz

Eğer android.hardware.telephony (siz-özelliğini kullanır etiketi Android manifest dosyasında kullanarak belirtin olan), okumak/gönderme göreceksiniz görürseniz/yazma Bu özellik kapsamında SMS belirtilmiştir.

Galaxy TAB example,Can't make calls still phone type comes as PHONE_TYPE_CDMA

nedenle yukarıdaki linke

+0

Tamam, şimdi anladım, teşekkürler! –

+2

Satır numarasını sınayın, bazı ağ operatörleri tarafından yasaklanmıştır. Vodafone ağıyla telefonumun boş hat numarası var ve SMS gönderebilir. Yüklenecek uygulamalar varsa, SMS Niyeti yapıp bulmaya çalışın. – Pihhan

2

kullanın aşağıdaki kod gösterildiği gibi, sayı gibi durumlarda gerekli olacaktır hat için ek kontrolün eklenmesi:

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