2010-06-03 19 views
5

He realizado mi investigación y he encontrado mucha gente lanzando la aplicación de sms desde un intento, la cosa es que la gente generalmente tiende a hacer esto solo para mensajes salientes.start sms Activity @ ConversarionList.class desde mi propia aplicación

Actualmente estoy mostrando un conteo de SMS no leídos en mi aplicación, pero parece que no puedo obtener la intención correcta de trabajar.

En cada intento me sale el mismo resultado, Se pone en marcha la aplicación, pero para un nuevo SMS ...

Mi intención actual se parece a esto

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("sms:")); 
startActivity(intent); 

y es resultado es:

Android sms Aplication form http://img291.imageshack.us/img291/1330/22012196.png

  • EDIT: Para -> Para
  • Escribir Mensaje -> Escribir mensaje
  • Enviar -> Enviar

espero ser lo suficientemente claro al respecto.

La pregunta es:

¿Cómo puedo ir a la bandeja de entrada de la aplicación SMS en Android a través de una Intención?


EDIT: sólo quiero repetir esto:

startActivity(new Intent(this, ConversationList.class)); 

Wich me llevó desde: http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028

En mi propia aplicación. Pero no puedo hacer que funcione.

Respuesta

2

¿Qué es SetClassName?

Para iniciar una clase ubicada fuera de la aplicación actual, necesitamos declarar algo así como una "Ruta completa" a la misma ...

Con el fin de abrir la @ConversationList aplicación SMS por defecto que tenemos que hacer esto:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList"); 

Fuente:

1
  1. Primero, observe las diferentes opciones de intento y de lanch. Puedes ver mi respuesta a similar question. Su código llamará a algo con un StartActivityForResult(). Lo que es una pregunta más difícil.

  2. Si tiene suerte, puede encontrar una INTENCIÓN en la aplicación de mensajería para conocer el estado. Probablemente no lo haga, ya que no hay garantía de que el teléfono use el sistema predeterminado. Después de todo, cuando se recibe un SMS, se coloca en alguna base de datos de mensajes y es 'nuevo' solo según la lógica de las aplicaciones de mensajería. Esa base de datos no se comparte, por razones de seguridad. Es posible que desee comentar en este feature request.

  3. Puede escribir su propia aplicación que capte el intento de 'nuevo SMS' y luego lo envíe hacia adelante, tal vez. Vea esto somewhat old tutorial.

¡Buena suerte! Háganos saber si progresa.

+0

Creo que estamos hablando de dos cosas diferentes aquí. Solo quiero replicar esto: startActivity (new Intent (this, ConversationList.class)); que obtuve de: http://www.google.com/codesearch/p?hl=es#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028 En mi propia aplicación . Pero no puedo hacer que funcione. Gracias de antemano. –

+0

Lo siento, no puedo entender tu pregunta. –

+0

He creado una aplicación que muestra al usuario la cantidad de SMS no leídos. Mi idea es "vincular" ese contador con la aplicación de SMS predeterminada. El problema es: no puedo hacer que la aplicación sms predeterminada comience en la actividad ConversationList. PD: La actividad ConversationList es la pantalla principal de la aplicación sms predeterminada. –

-2

smsIntent Intención = new Intención (Intent.ACTION_VIEW);

smsIntent.setType ("vnd.android-dir/mms-sms");

smsIntent.putExtra ("dirección", "12125551212");

smsIntent.putExtra ("sms_body", "Cuerpo del mensaje");

startActivity (smsIntent);

Cuestiones relacionadas