Android 2 0讀取所有聯絡人姓名與電話

2021-08-26 11:10:56 字數 1264 閱讀 3318

contentresolver cr = getcontentresolver();    

cursor cursor = cr.query(contactscontract.contacts.content_uri, null, null, null, null);

while (cursor.movetonext())

string += "\n";

phone.close();

} cursor.close();

如果有n個聯絡人且每個聯絡人都存有**號碼的話,就得查詢n+1次。

在園子裡看到乙個帖子說可以通過

取得所有聯絡人的資訊,我在android 4.0模擬器跟2.3.7的真機上測試都不成功。

聯絡人的各種型別的資訊都儲存在data表中,所以查詢data表並限制其mimetype為phone.content_item_type即可以查到所有姓名與**

cursor phone = cr.query(contactscontract.commondatakinds.phone.content_uri, new string , null, null, null);

hashmap>

於是有了如下**:

contentresolver cr = getcontentresolver();

hashmap> hs=new hashmap>();

cursor phone = cr.query(contactscontract.commondatakinds.phone.content_uri, new string , null, null, null);

while (phone.movetonext())

else

ad.add(strphonenumber);

}phone.close();

這樣就可以解決乙個姓名對應多個號碼的問題,但還有問題,可能是兩個聯絡人同名,但他們屬於不同的聯絡人,在資料庫中表現為有不同的contact_id,那麼可以將上述**修改一下,將projection引數處新增上contactscontract.commondatakinds.phone.contact_id,然後把map改為以contact_id為建,以display_name與number組成的list為值,把display_name統一儲存為list的第一項。當然也可以定義乙個類,包含姓名欄位及**號碼組成的list欄位,**號碼的list中的元素還可以是map,以號碼的type為鍵。

Android 2 0 開機動畫檔案分析

android 2.0 開機動畫檔案分析 android 2.0 開機動畫檔案分析 android 2.0 開機動畫檔案分析。開機動畫檔案 bootanimation.zip 動畫是由系列連續刷屏實現的。bootanimation.zip檔案是zip壓縮檔案,壓縮方式要求是儲存壓縮,包含乙個檔案和兩...

Android 2 0 開機動畫檔案分析

開機動畫檔案 bootanimation.zip 動畫是由系列連續刷屏實現的。bootanimation.zip檔案是zip壓縮檔案,壓縮方式要求是儲存壓縮,包含乙個檔案和兩個目錄 1.動畫屬性描述檔案 desc.txt 2.第一階段動畫目錄 part0 3.第二階段動畫目錄 part1 desc....

Android 讀取所有簡訊

android name android.permission.receive sms android name android.permission.read sms private uri sms inbox uri.parse content sms public void getsmsfro...