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...