2013-02-22 38 views
5

Tôi đã cố gắng nhận tất cả thư theo id chủ đề với url: nội dung: // mms-sms/conversation/{threadId}, nhưng dường như không hoạt động và ném ngoại lệ:Cách nhận tất cả tin nhắn bằng ThreadID trong android

java.lang.NullPointerException

tại android.os.Parcel.readException (Parcel.java:1333)

tại android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:182)

tại android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:136)

tại android.content.ContentProviderProxy.query (ContentProviderNative.java:358)

tại android.content.ContentResolver.query (ContentResolver java: 311)

........ 

Tuy nhiên, khi tôi thay đổi nó để nội dung: // sms/hội thoại/{} threadid, nó sẽ không ném này, nhưng chỉ hoạt động cho sms, không phải cho mms.

lý do tại sao?

+0

bất kỳ chàng trai đã làm việc vào những thứ như vậy? – Binary

Trả lời

4

sms và mms bảng có các cột khác nhau, cách chính xác là để lấy mỗi ngày của riêng mình, đó là

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

vâng, có thể bạn đúng về nó. có vẻ như chúng tôi không còn lựa chọn nào khác. – Binary

+0

Từ tài liệu: @param selection Một bộ lọc khai báo các hàng cần trả về, được định dạng là một mệnh đề SQL WHERE (LOẠI TRỪ chính WHERE). – Yaroslav

+0

@Yaroslav đã chỉnh sửa. Cảm ơn. – vikki

1

Đoạn mã trên cho thấy lỗi cú pháp như thế vì vậy tôi đã thay đổi như thế này.

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

Nó hoạt động tốt đối với tôi

Các vấn đề liên quan