2013-02-22 12 views
5

Ho cercato di ottenere tutti i messaggi per ID di thread con uri: content: // mms-sms/conversations/{threadId}, ma non sembra funzionare e genera eccezioni:Come ottenere tutti i messaggi da ThreadID in android

java.lang.NullPointerException

a android.os.Parcel.readException (Parcel.java:1333)

a android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:182)

a android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:136)

a android.content.ContentProviderProxy.query (ContentProviderNative.java:358)

a android.content.ContentResolver.query (ContentResolver .java: 311)

........ 

tuttavia, quando lo cambio al contenuto: // sms/conversazioni/{} threadID, non getterà questi, ma funziona solo per sms, non per gli MMS.

perché?

+0

qualsiasi ragazzi hanno lavorato su queste cose? – Binary

risposta

4

lo SMS e MMS tabelle hanno differenti colonne, il modo corretto è quello di recuperare ciascuno sul proprio, che è

Cursor smsCur = cr.query(Uri.parse("content://sms/"), null, "thread_id=" + threadId, null, null); 
Cursor mmsCur = cr.query(Uri.parse("content://mms/"), null, "thread_id=" + threadId, null, null); 
+0

sì, forse hai ragione al riguardo. sembra che non abbiamo altra scelta. – Binary

+0

Da documenti: @param selection Un filtro che dichiara quali righe restituire, formattate come una clausola WHERE (ESCLUDE il WHERE stesso). – Yaroslav

+0

@ Yaroslav modificato. Grazie. – vikki

1

Il codice sopra riportate errore di sintassi simile così ho cambiato simili.

Cursor c= getContentResolver().query(Uri.parse("content://sms/"), null, "thread_id=" + messgid, null, null); 

Funziona bene per me

Problemi correlati