2012-03-22 19 views
5

Al igual que la aplicación Mensaje, la primera Actividad muestra el último mensaje SMS agrupado por persona y el número de conteo.consultar el último grupo de mensajes SMS por contacto

Ejemplo había intercambiado 50 textos con Chris, 60 con Aline, 40 con Ray ... La aplicación muestra algo como esto

Chris (50) Hey how are you lately ?  
Aline (60) Let's catch up  
Ray (40) Here is my number 
Ethan (1) I wrote a solution 

que estoy tratando de hacer lo mismo. Consulto todos los SMS y luego los clasifico. Al menos es O (n) eficiente.

Cursor cur = this.getContentResolver().query(Uri.parse("content://sms"), null, null, null, null); 
int count = cur.getCount(); 

// iterate all the SMS 
for (int i=1 ; i<=count ; i++){ 
    // processing 
    .... 

    cur.moveToNext(); 
} 

¿Hay una manera de consulta los últimos mensajes recibidos o enviados (sin proyecto tipo) agrupados por persona y obtener el número de SMS de una persona? Supongo que hay varias consultas.

Respuesta

9

creo que esto va a hacer lo que quiere:

Cursor cur = this.getContentResolver().query(Uri.parse("content://mms-sms/conversations?simple=true"), null, null, null, "normalized_date desc"); 

El cursor devuelto contendrá el mensaje más reciente en cada conversación y la cantidad de mensajes en cada conversación.

+0

Funciona! El número de mensajes es la columna "message_count". No olvides "android.permission.READ_SMS". ¿De dónde sacaste este simple fragmento de código? –

+0

Recuerdo tropezar con el mismo problema cuando hago mi propio análisis de SMS. Hice un rápido google y encontré algunas fuentes en realidad. Me alegro de que funcionó. – gelupa

+0

Ok gracias por su ayuda. No en Google "conversación" palabra clave :) –

Cuestiones relacionadas