如何查询特定地址发送的所有消息?
经过多天的搜索后,我无法在StackOverflow上找到答案。
我目前正在收到这样的所有邮件:
Uri uri = Uri.parse("content://sms/");
Cursor managedCursor = getContentResolver().query(uri, null, ("thread_id = " + ThreadID), null, "date ASC");
但这只会返回短信(没有彩信)。我尝试将content://sms/
更改为content://mms-sms/
,但这是无法识别的。我还尝试查询content://mms-sms/conversations/xxx
其中xxx
是thread_id,但这只是给了我一个NullPointerException。
我一直在寻找解决方案。其他短信应用程序,如Go SMS和Sliding Messaging可以完美地完成,但我似乎无法弄明白......
答案 0 :(得分:2)
null
的{{1}}投影参数是导致content://mms-sms/conversations/xxx
的原因---如果您明确地投影所需的列(例如NullPointerException
),它应该有效很好。
但是,{"address", "body", "date"}
的查询并不是根据发送消息的地址严格选择的;如果你想要,你应该查看thread_id
(忽略你发送的消息)并使用选择参数来查询你感兴趣的地址:
content://sms/inbox