2013-04-10 15 views
5

Ho già letto alcune domande correlate a riguardo, ma la maggior parte di queste riguardava le chiamate, non gli SMS. Quello che ho trovato finora è:Verifica se un telefono può inviare SMS

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 
} 

E 'vero, i dispositivi con TelephonyManager.PHONE_TYPE_NONE sono in grado di inviare SMS? Non capisco la descrizione di TelephonyManager.PHONE_TYPE_NONE, che è "Nessuna radio del telefono".

Grazie!

+1

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

risposta

2

Sì con TelephonyManager.PHONE_TYPE_NONE non è possibile inviare rete radio SMS.As è tenuto ad inviare SMS. Tuttavia è possibile utilizzare alcuni messaggeri basati su IP come che cosa è app, eBuddy su di loro

se si vede android.hardware.telephony (che si specifica utilizzando usi di funzionalità tag nel file manifest Android), si noterà invio/lettura/scrittura SMS sono menzionati sotto questa funzione.

Galaxy TAB example,Can't make calls still phone type comes as PHONE_TYPE_CDMA, quindi l'aggiunta di ulteriore controllo per linea sarà richiesto il numero per tali casi, come mostrato nel link qui sopra

+0

Ok, capito ora, grazie! –

+2

Non testare il numero di linea, è vietato da alcuni operatori di rete. Il mio telefono con la rete Vodafone ha un numero di linea vuoto e può inviare SMS. Prova a creare SMS Intent e trova, se ci sono applicazioni per gestirlo installato. – Pihhan

2

utilizzare il seguente codice:

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