2011-01-05 17 views
5

Hola, he estado haciendo una aplicación de Android que necesita enviar un mensaje de texto. Aquí está el código actual que tengo:Enviando un SMS en 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?"); 
} 

Ahora, por alguna razón, el mensaje de texto no enviará utilizando este código, y no estoy seguro de por qué. Esperaba que alguien aquí pudiera ayudarme a encontrar por qué este mensaje no se enviará.

No se ha producido ningún error, no aparece nada en el registro (a excepción de los mensajes de registro que hago en el código). Además, el manifiesto tiene las etiquetas correctas.

Sugerencias?

+0

FWIW, aquí hay un proyecto de muestra que funciona, pero es de una actividad, no de un servicio: https://github.com/commonsguy/cw-advandroid/tree/master/SMS/Sender – CommonsWare

+0

¿Qué significa Phone? getMsg (usuario [0], usuario [1]) return? ¿Has probado esto en un dispositivo o emulador? Además, los nombres de las clases siempre deben comenzar con una letra mayúscula (GetMessage no getMessage). – elevine

+0

Phone.getMessage recibe el mensaje que recibió ... y getMessage es un método, no una clase, aunque mi clase de cliente debe estar en mayúscula ... – D4N14L

Respuesta

2

Bueno, ahora, esto es embarazoso. Aparentemente, la forma en que lo estaba haciendo era correcto. La forma en que estaba revisando para ver si se envió fue aparentemente incorrecta.

Al enviar un código como este, no aparece como un mensaje enviado en el teléfono, sino que será recibido por la otra persona. Solo tenía que probar esto ejecutando dos emuladores.

De todos modos, gracias por la ayuda, muchachos!

+0

¡Estoy haciendo algo similar AQUÍ! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42

3

Debe verificar si tiene permiso para enviar SMS.

+1

Creo que si no tiene el permiso adecuado, aparecerá un mensaje de error en el registro. –

+0

Tal vez, solo estoy adivinando, pero lo comprobaría primero. – Ante

+1

Como dije en la parte inferior de la publicación, tengo los permisos correctos en el archivo de manifiesto. (la etiqueta para SEND_SMS) – D4N14L

1

does this link help? Básicamente pasa por una actividad de muestra que envía y escucha mensajes SMS.

+0

Lamentablemente, no. He visto ese enlace antes, y básicamente repasa lo que ya hice. Gracias por intentar, sin embargo. – D4N14L

+0

Sé que usted dijo que tiene los permisos correctos, pero creo que leí en algún lugar (no puedo encontrarlo ahora) que también necesita agregar READ_PHONE_STATE para enviar mensajes SMS. De nuevo, esto es solo algo que creo que leí hace un tiempo ... – ekawas

+0

otra cosa, ¿cómo estás probando esto? Noté que cuando pruebo en un dispositivo real, el registro no es 100% exacto. Prueba con el emulador y busca mensajes en Logcat. – ekawas