我已經創建了一個listview.now我想顯示數據(聯繫電話號碼,姓名)從聯繫人列表的Android(電話簿)在我的列表視圖。 我得到它的android 1.5,但我想爲android2.1updated做到這一點。如何獲取Android 2.1中我的單獨列表視圖上的Android聯繫人列表數據?
如何做到這一點?任何人可以指導我或給一些示例代碼? 在此先感謝---
我已經創建了一個listview.now我想顯示數據(聯繫電話號碼,姓名)從聯繫人列表的Android(電話簿)在我的列表視圖。 我得到它的android 1.5,但我想爲android2.1updated做到這一點。如何獲取Android 2.1中我的單獨列表視圖上的Android聯繫人列表數據?
如何做到這一點?任何人可以指導我或給一些示例代碼? 在此先感謝---
如果在1.5實現它,然後有可能是URI的一個小的差異。您應該在2.1中查找聯繫人的更新/更改的URI。爲了進一步理解這裏是2.1更新的示例代碼:
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cur.moveToNext())
{
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
//---------------------------------------- Contact Names
//------------------------------------------------------
String DisplayName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor names = cr.query(ContactsContract.Data.CONTENT_URI, null,ContactsContract.Data.CONTACT_ID + " = " + id, null, null);
names.moveToNext();
String GivenName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA2));
String FamilyName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA3));
String MiddleName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA5));
names.close();
//----------------------------------------- Phone Numbers
//-------------------------------------------------------
String hasPhoneNumber = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhoneNumber.equals("1"))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,null, null);
while (phones.moveToNext())
{
......
}
}
} // AND SO ON.... Get which ever data you need.
所以上面只是我用於我的任務的示例代碼。您可以通過相應地進行更改來獲得所需的內容。我希望它有幫助。
這將幫助您獲取聯繫人。
Cursor contactList = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null,null, null);
爲了得到一個特定聯繫人的電話號碼,你需要使用:
String id = contactList.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phoneCursor = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER},
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{id}, null);
你試過了哪些代碼? – Hiral