2011-06-29 22 views
5

Tengo problemas con el método sendDataMessage() en SmsManager.Envío de datos SMS en Android en un teléfono CDMA

El envío de un SMS de datos entre 2 emuladores GSM parece funcionar al menos parcialmente, pero obtengo un NullPointerException cuando uso el mismo método en un teléfono Verizon CDMA.

He encontrado este enlace a un bug report algo similar:

"SmsManager.sendDataMessage() siempre falla en los dispositivos CDMA porque no hay ninguna ruta de código para que tenga éxito El fracaso se puede ver en. el registro de radio, donde com.android.internal.telephony.cdma.sms.BearerData.encodeEmsUserDataPayload() arroja una CodingException. "

Pero me pregunto si alguien ha encontrado una solución para hacer algo similar en los teléfonos CDMA.

+1

Creo que por ahora podría conformarme con sendMessage() y usar una etiqueta especial en los mensajes, luego interceptar todos los mensajes y buscar la etiqueta, pero este es un truco, preferiría no do – bfly2000

+0

¿Ya resolvió este problema? Tengo el mismo problema, y ​​estoy tendiendo a pensar que es un proveedor (Verizon Wireless en mi caso) limitación relacionada (o más bien restricción). – xtrem

+0

Hola @ bfly2000, voy a llegar tan tarde, pero estoy teniendo el mismo problema. ¿Sabes si esto se ha resuelto hasta la fecha y cómo se obtiene el registro de radio? – Simon

Respuesta

0

Este código funciona bien para GSM y CDMA tanto

String sms = message.getText().toString(); 

      if(PhoneNumberUtils.isWellFormedSmsAddress(dest)) 
      { 
       for(String contact:multiContact) 
       { 
        smsManager.sendTextMessage(contact, null, sms, null, null); 
        Toast.makeText(SampleSms.this, "SMS messgae Sent to"+contact, Toast.LENGTH_LONG).show(); 
       } 

      } 
      else 
      { 
       Toast.makeText(SampleSms.this, "SMS messgae Sent failed", Toast.LENGTH_LONG).show(); 
      } 

También había utilizado sendDataMessage() pero ha obtenido un error. Pero el código anterior está funcionando bien

+0

Estoy tratando de enviar un SMS de datos, porque estoy usando esto como un método específico para enviar datos de un programa. Esto no va a ser un mensaje de texto estándar, y sería interceptado por un cliente de mensajería SMS. Incluso si configuro mi programa para que tenga un alto android: prioridad para el intento SMS_RECIEVED, aún tengo que encargarme del análisis y asegurarme de que el mensaje es de mi programa, no hay forma de asegurarme de que no estoy interceptando un texto real. mensaje. – bfly2000

+0

¿Ha usado el puerto no en 'sendDataMessage()'? Sin embargo, este mensaje está privado –

+0

por supuesto, no creo que funcione sin un número de puerto, y no estoy seguro de por qué está obsoleto, esperaba que hubiera una manera de imitar un sms de datos para una red cdma en Android en este momento – bfly2000

Cuestiones relacionadas