2011-01-05 15 views
5

Ehi, ho creato un'app per Android che deve inviare un messaggio di testo. Ecco il codice corrente che ho:Invio di un SMS in Android

public class getMessage extends Service { 
@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 

    client Phone = new client(); 


    String[] msg = Phone.getMsg(user[0],user[1]); 
    PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, getMessage.class), 0); 
    SmsManager man = SmsManager.getDefault(); 
    Log.e("GOT MESSAGE", msg[0]+ " : " +msg[1]); 
    man.sendTextMessage(msg[0], null, msg[1], pi, null); 
    Log.e("Message", "Sent the message?"); 
} 

Ora, per qualche ragione, il messaggio di testo non trasmetteremo usi questo codice, e io non sono sicuro perché. Speravo che qualcuno qui potesse aiutarmi a scoprire perché questo messaggio non verrà inviato.

Nessun errore viene generato, non viene visualizzato nulla nel registro (tranne che per i messaggi di registro che mi inserisco nel codice). Inoltre, il manifest ha i tag corretti.

Suggerimenti?

+0

FWIW, ecco un progetto di esempio che funziona, ma è da un'attività, non da un servizio: https://github.com/commonsguy/cw-advandroid/tree/master/SMS/Sender – CommonsWare

+0

Che cosa fa Phone. getMsg (utente [0], utente [1]) restituisce? Hai provato questo su un dispositivo o un emulatore? Inoltre, i nomi delle classi dovrebbero sempre iniziare con una lettera maiuscola (GetMessage not getMessage). – elevine

+0

Phone.getMessage riceve il messaggio che ha ricevuto ... e getMessage è un metodo, non una classe, sebbene la mia classe client debba essere in maiuscolo ... – D4N14L

risposta

2

Bene, ora, questo è imbarazzante. Apparentemente, il modo in cui lo stavo facendo era corretto. Il modo in cui stavo controllando per vedere se è stato inviato era apparentemente errato.

Durante l'invio tramite codice come questo, non appare come un messaggio inviato sul telefono, ma viene ricevuto dall'altra persona. Ho solo dovuto testare questo eseguendo due emulatori.

Grazie comunque per l'aiuto, ragazzi!

+0

Sto facendo qualcosa di simile QUI !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

3

È necessario verificare se si dispone dell'autorizzazione per l'invio di SMS.

+1

Credo che se non si dispone dell'autorizzazione appropriata, nel log dovrebbe apparire un messaggio di errore. –

+0

Forse, sto solo indovinando, ma prima lo controllerei. – Ante

+1

Come detto in fondo al post, ho le autorizzazioni corrette nel file manifest. (il tag per SEND_SMS) – D4N14L

1

does this link help? Fondamentalmente va su un'attività di esempio che invia e ascolta i messaggi SMS.

+0

Sfortunatamente, no. Ho visto questo link in passato, e fondamentalmente va oltre ciò che avevo già fatto. Grazie per aver provato, però. – D4N14L

+0

So che hai detto che hai i permessi corretti, ma penso di aver letto da qualche parte (non riesco a trovarlo ora) che devi anche aggiungere READ_PHONE_STATE per l'invio di messaggi SMS. Ancora una volta, questo è solo qualcosa che penso di aver letto qualche tempo fa ... – ekawas

+0

un'altra cosa, come stai testando questo? Ho notato che quando eseguo il test su un dispositivo reale, il registro non è accurato al 100%. Prova a provare con l'emulatore e cerca i messaggi in Logcat. – ekawas