我正在開發電話簿應用程序。我正在嘗試檢索聯繫人圖片。起初,我檢索了所有的聯繫人,然後拿走了每個contact_id並在照片桌上做了一個查詢來獲取照片。但是,查詢圖片的所有聯繫人需要花費很長時間。在我的模擬器中,有超過1000個聯繫人,因此,在照片桌上的1000多次點擊正在被解僱。那麼,有沒有辦法連接這兩個表並在單個查詢中獲取數據?在Android中加入聯繫人和照片表
下面是我的代碼來做到這一點。但我知道它錯了。剛剛給了它一個鏡頭。請有人糾正它。
String[] projection = new String[]{Contacts._ID, Contacts.DISPLAY_NAME};
String joinCondition = "ContactsContract.Contacts._ID=ContactsContract.CommonDataKinds.Photo.CONTACT_ID";
ContentResolver cr = context.getContentResolver();
Uri contactUri = ContactsContract.Contacts.CONTENT_URI;
Uri fillUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY);
Cursor cur = cr.query(contactUri, projection,
joinCondition, null, Contacts.DISPLAY_NAME);
THX! 拉胡爾。
如果我沒有錯,我將不得不使用結果中的照片uri對照片表進行查詢。我又開始了。 – rahul 2012-02-19 20:06:53
一旦你有一個縮略圖URI,你只需要設置你的圖像視圖來顯示縮略圖。這不是你想要的嗎? – Asahi 2012-02-19 21:08:27
我同意我會得到縮略圖uri。但是,我將不得不去查詢或使用openContactPhotoInputStream()來獲取實際的blob。這是有效的,但由於有超過1000個查詢需要觸發,所以很長一段時間。有沒有辦法一次檢索所有照片? – rahul 2012-02-20 17:12:40