Search code examples
androidsmsmessagingandroid-mms

Retrieving SMS in marshmallow


I have a failed SMS in my native inbox. I m not able to retrieve it from my application. The query I use is:

content://mms-sms/conversations/73

SELECT transport_type, _id, thread_id, address, body, date, date_sent, read, type, status, locked, error_code, sub, sub_cs, date, date_sent, read, m_type, msg_box, d_rpt, rr, err_type, locked, st FROM (SELECT DISTINCT date * 1 AS normalized_date, 'sms' AS transport_type, _id, thread_id, address, body, date, date_sent, read, type, status, locked, error_code, NULL AS sub, NULL AS sub_cs, date, date_sent, read, NULL AS m_type, NULL AS msg_box, NULL AS d_rpt, NULL AS rr, NULL AS err_type, locked, NULL AS st FROM sms WHERE (thread_id = 73 AND (type != 3)) UNION SELECT DISTINCT date * 1000 AS normalized_date, 'mms' AS transport_type, pdu._id, thread_id, NULL AS address, NULL AS body, date, date_sent, read, NULL AS type, NULL AS status, locked, NULL AS error_code, sub, sub_cs, date, date_sent, read, m_type, msg_box, d_rpt, rr, err_type, locked, st FROM pdu LEFT JOIN pending_msgs ON pdu._id = pending_msgs.msg_id WHERE (thread_id = 73 AND msg_box != 3 AND (msg_box != 3)) ORDER BY normalized_date ASC) ORDER BY normalized_date ASC

where 73 is the thread ID. In lollipop and kitkat , it works fine. But in marshmallow, it returns "0" new messages.

Please help me here.

Was there any changes in native SMS DB params in marshmallow???


Solution

  • This issue occurs because in marshmallow, there is a restricted access in viewing SMS. A SQL view is created named "sms_restricted" and it contains only MESSAGE_TYPE_INBOX and MESSAGE_TYPE_SENT. That is alone exposed to other application developers.

    The failed messages, draft messages, outbox messages, queued messages are not accessible unless our application is made as "Default Messaging application".