2011-05-19 12 views
5

En mi aplicación necesito leer sms provenientes de solo un número, y cuando lo reciba tengo que configurarlo como leído automáticamente, sin configurarlo en la aplicación de Android sms, pero desde mi aplicación . ¿Como lo puedo hacer? Gracias!Establecer sms como leído en Android

Respuesta

3

Un breve ejemplo:

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); 
while (cursor.moveToNext()) { 
    // Retrieve sms 
    // see column "address" for comparing 

    // Then update the sms and set the column "read" to 1 
} 
+0

Gracias por la ayuda. Tengo un problema: 'while (cursor.moveToNext() &&! Stato) { \t \t \t \t String asd = new String (cursor.getBlob (cursor.getColumnIndex (" read "))); \t \t \t \t Toast.makeText (context, asd, Toast.LENGTH_SHORT) .show(); \t \t \t} 'Si configuro la dirección en getColumnIndex no hay problema, pero si configuro la lectura u otro nombre de columna, no funciona. ¿Por qué? ¡Gracias! – pindol

+0

La última vez que escribí algo para android fue hace aproximadamente un año. Lo siento, pero no sé la respuesta. Pero hay varios Uri para la API de sms. Puede tratar de escribir los sms en uno diferente como ** content: // sms/inbox ** y eliminar el anterior en la bandeja de entrada. – hoferm

+0

encontré la solución, ¡gracias! – pindol

14

Vamos a actualizar esto:

ContentValues values = new ContentValues(); 
values.put("read",true); 
getContentResolver().update(Uri.parse("content://sms/"),values, "_id="+SmsMessageId, null); 

SmsMessageId es _id del mensaje, que se encuentra en la base de datos de SMS.