android獲取聯繫人信息,插入聯繫人

Cursor cur = getContentResolver().query(  
                ContactsContract.Contacts.CONTENT_URI,  
                null,  
                null,  
                null,  
                ContactsContract.Contacts.DISPLAY_NAME  
                        + " COLLATE LOCALIZED ASC"); 
這段代碼可以得到所有聯繫人的基本信息(不包括電話號碼,號碼要通過另外一種方式獲取),
        if (cur.moveToFirst()) {  
            int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);  
  
            int displayNameColumn = cur  
                    .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);  
  
            do {  
                // 獲得聯繫人的ID號  
                String contactId = cur.getString(idColumn);  
                // 獲得聯繫人姓名  
                String disPlayName = cur.getString(displayNameColumn);  
                  
                // 查看該聯繫人有多少個電話號碼。如果沒有這返回值爲0  
                int phoneCount = cur  
                        .getInt(cur  
                                .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));   
                if (phoneCount > 0) {  
                    // 獲得聯繫人的電話號碼  
                    Cursor phones = getContentResolver().query(  
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,  
                            null,  
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
                                    + " = " + contactId, null, null);  
                    if (phones.moveToFirst()) {  
                        do {  
                            // 遍歷所有的電話號碼  
                            String phoneNumber = phones  
                                    .getString(phones  
                                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
                            Log.i("phoneNumber", phoneNumber);  
                            Log.i("phoneType", phoneType);  
                        } while (phones.moveToNext());  
                    }  
                } }while(cur.moveToNext);}
//上面的代碼
                    Cursor phones = getContentResolver().query(  
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,  
                            null,  
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
                                    + " = " + contactId, null, null); 
是獲得聯繫人電話號碼的Cursor,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
                                    + " = " + contactId
是篩選條件,因爲要一一對應,上面一個循環得到聯繫人的ID,所以要篩選對應ID相對應的號碼。


插入聯繫人
private Uri insertContact(Context context, String name, String phone) {
	   
       ContentValues values = new ContentValues();
       values.put(People.NAME, name);
       Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
       Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);
       values.clear();
       
       values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);
       values.put(People.NUMBER, phone);
       getContentResolver().insert(numberUri, values);
       
       return uri;
}
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章