2013-02-22 13 views
5

मैंने यूरी के साथ थ्रेड आईडी द्वारा सभी संदेशों को प्राप्त करने का प्रयास किया: सामग्री: // एमएमएस-एसएमएस/बातचीत/{थ्रेडआईडी}, लेकिन यह काम नहीं लग रहा है और अपवाद फेंकता है:एंड्रॉइड में थ्रेडआईड द्वारा सभी संदेशों को कैसे प्राप्त करें

java.lang.NullPointerException

android.os.Parcel.readException पर

(Parcel.java:1333)

android.database.DatabaseUtils.readExceptionFromParcel पर

(DatabaseUtils.java:182)

android.database.DatabaseUtils.readExceptionFromParcel पर (DatabaseUtils.java:136)

android.content.ContentProviderProxy.query पर (ContentProviderNative.java:358)

android.content.ContentResolver.query पर (ContentResolver जावा: 311)

........ 

तथापि, जब मैं यह सामग्री के लिए बदल: // एसएमएस/बातचीत/{threadid}, यह इन फेंक नहीं होगा, लेकिन केवल एमएमएस के लिए नहीं, एसएमएस के लिए काम करता है।

क्यों?

+0

किसी भी लोग ऐसी बातों पर काम किया है काम करता है? – Binary

उत्तर

4

एसएमएस और एमएमएस टेबल विभिन्न स्तंभों है, सही तरीका अपने आप ही प्रत्येक लाने के लिए, कि

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

हाँ, शायद आप इसके बारे में सही हैं। ऐसा लगता है कि हमारे पास कोई अन्य विकल्प नहीं है। – Binary

+0

दस्तावेज़ों से: @param चयन एक फ़िल्टर जो कि पंक्तियों को वापस करने के लिए घोषित करता है, एसक्यूएल जहां खंड (जहां स्वयं को बाहर कर रहा है) के रूप में स्वरूपित किया गया है। – Yaroslav

+0

@ यरोस्लाव संपादित। धन्यवाद। – vikki

1

है ऊपर कोड की तरह है कि तो मैं इस तरह बदल सिंटेक्स त्रुटि से पता चलता है।

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

यह मेरे लिए ठीक

संबंधित मुद्दे