2013-10-10 41 views
2

如何查詢全部由特定地址發送的消息?Android - 從特定線程ID查詢所有MMS&SMS

經過多天的搜索後,我無法在StackOverflow上找到我的答案。

我目前得到的所有消息是這樣的:

Uri uri = Uri.parse("content://sms/"); 
Cursor managedCursor = getContentResolver().query(uri, null, ("thread_id = " + ThreadID), null, "date ASC"); 

但這只是返回短信(MMS無)。我嘗試將content://sms/更改爲content://mms-sms/,但那是無法識別的。我也試着去查詢content://mms-sms/conversations/xxx,其中xxx是thread_id,但這只是給了我一個NullPointerException。

我一直在尋找解決這個問題的日子。其他短信應用程序,如GO短信和滑動消息可以做到完美,但我似乎無法推測出來......

+0

http://stackoverflow.com/questions/3012287/how-to-read-mms-data-in-android?rq = 1這可能有幫助! –

+0

看到它,我嘗試了它的建議,仍然沒有幫助。 – Pkmmte

+0

@Pkmmte你解決了你的問題? – Erum

回答

1

一個null投影參數content://mms-sms/conversations/xxx是什麼導致NullPointerException ---如果明確項目你想要的列(例如,{"address", "body", "date"}),它應該工作得很好。

但是,由thread_id查詢並非嚴格基於消息發送的地址進行選擇;如果你想要的,你應該看看在content://sms/inbox(而忽略你發送的消息),並使用選擇參數來查詢你感興趣的地址:

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor managedCursor = getContentResolver().query(uri, null, "address=?", {targetedAddress}, "date ASC"); 
相關問題