我想在單個查詢中獲取我的手機聯繫人姓名,電話號碼和電子郵件地址。有可能獲取1查詢中的所有內容嗎?聯繫人顯示時應用程序掛起
我有我的手機和其get忌用幾乎1000個聯繫人,當我嘗試下面的代碼行,以顯示我的聯繫方式:
Cursor cursor = this.getContentResolver().query(intent.getData(), null, null, null,null);
while (cursor.moveToNext())
{
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false" ;
if (Boolean.parseBoolean(hasPhone))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null,
ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE");
while (phones.moveToNext())
{
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String name = phones.getString(phones.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
}
phones.close();
}
// Find Email Addresses
Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,null,
ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE");// contactId+ " DESC");
while (emails.moveToNext())
{
String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
}
emails.close();
} //while (cursor.moveToNext())
請張貼在調用此方法的代碼.... – 2012-02-24 10:00:10