public static List SmaDataManager.getThreads(Context context)

时间:2021-10-13 17:11:18

public static List<TxrjThreads> getThreads(Context context)

解析获取Threads列表之要点:

1. 得到带有fail信息的threadId列表。

List<Integer> failedIds = getFailedMsgThreadIds(context);

2. 得到带有draft信息的threadId列表。

List<Integer> draftIds = getDraftMsgThreadIds(context);

3. 从数据库表threads中查询数据。

Cursor cursor = context.getContentResolver().query(Telephony.Sms.CONTENT_URI,
        new String[] {"* from threads order by date desc--"},
        null, null, null);
4. 获取threadId相应的未读信息条数。

getUnreadMsgCountByThreadId(context,thread.getThreadId())

5. 获取recipient_ids相应的名字和号码。

getNameAddressForRecipients(context, thread.getRecipientId())

6. 总结getThreads方法需要做的事情。

A. 从数据库表threads中查询snippet, message_count, date, recipient_ids, read, threadId。

B. 从sms表中找出未读信息。

C. 从sms表中找出草稿信息。

D. 从canonical_addresses表中找出recipient的address(号码)。

E. 从contact2数据库data表中查找出address对应的Name。