簡體   English   中英

如何使用加載程序獲取聯系人姓名,電話號碼,電子郵件詳細信息

[英]How to get contact name, phone number, email details using Loaders

我們可以使用此uri獲取聯系人姓名和電話號碼

ContactsContract.CommonDataKinds.Phone.CONTENT_URI

我們可以使用uri獲取電子郵件地址

ContactsContract.CommonDataKinds.Email.CONTENT_URI

但是,如何將這兩個uri傳遞給加載器並像代碼中那樣恢復Cursor加載器。 在此代碼中,我僅返回姓名和電話號碼,但如何獲取電子郵件以獲取通過

ContactsContract.CommonDataKinds.Email.CONTENT_URI

對此

return new CursorLoader(this,
                 ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                projection,
                null,
                null,
                null);

CommonDataKinds.PhoneCommonDataKinds.Email實際上都是大表ContactsContract.Data ,該表包含許多您可能不感興趣的其他信息,因此您可以使用Data.MIMETYPE僅選擇您感興趣的項目(電話和電子郵件) Data.MIMETYPE

因此,CursorLoader初始化可以是這樣的:

new CursorLoader(this,
    ContactsContract.Data.CONTENT_URI,
    projection,
    ContactsContract.Data.MIMETYPE + " IN (" + CommonDataKinds.Phone.CONTENT_TYPE + ", " + CommonDataKinds.Email.CONTENT_TYPE + ")",
    null,
    null);

但是,請注意,就像僅在CommonDataKinds.Phone.CONTENT_URI上進行查詢時,每部電話就會獲得一個聯系人,而不是每個聯系人CommonDataKinds.Phone.CONTENT_URI ,您現在將在每部電話或電子郵件中獲得一行 ,而不會按聯系人進行匯總。

您應該將Data.MIMETYPE添加到投影中,並使用它來確定當前行是電話行還是電子郵件行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM