2013-09-16 1 views
5

Я спасительный контакт по этому кодуполучение контакта идентификатора после сохранения андроида контакта

ArrayList<ContentProviderOperation> ops = 
      new ArrayList<ContentProviderOperation>(); 
... 
int rawContactInsertIndex = ops.size(); 
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) 
      .withValue(RawContacts.ACCOUNT_TYPE, accountType) 
      .withValue(RawContacts.ACCOUNT_NAME, accountName) 
      .build()); 

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
      .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex) 
      .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(StructuredName.GIVEN_NAME, linkname1) 
      .withValue(StructuredName.FAMILY_NAME, linkname2) 
      .build()); 

getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 

После сохранения контакта, мне нужно, чтобы получить поле _ID, так что я могу принести, что контакт с контактной книги для редактирования , Как я могу получить идентификатор после сохранения?

Заранее спасибо

ответ

2
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 

Uri myContactUri = res[0].uri; 
int contactID = Integer.parseInt(myContactUri.getLastPathSegment()); 
+1

Через ваш ответ я могу получить contactId, но когда я сравнил с Contacts._ID, разница в значении. Над чем один из них является сырым идентификатором контакта? – moDev

+0

Здесь «contactID» - это фактически ContactContract.RawContacts._ID, поэтому нам нужно получить идентификатор нужной контактной таблицы, используя запрос ContentResolver. – Harpreet

0

Здесь вы идете. Получить идентификатор контакта для числа ('phnumber`) от контактов

String[] projection = new String[]{Contacts._ID}; 
Uri contactUri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI,Uri.encode(phnumber)); 
Cursor c = getContentResolver().query(contactUri, projection, 
    null, null, null); 
if (c.moveToFirst()) { 
long contactId=c.getColumnIndex(Contacts._ID); 


c.close(); 

} 
+2

Здравствуйте, спасибо за ваш ответ. что такое phnumber и как я могу его получить? – AliAx

+0

phnumber - ваш номер контакта, который вы добавили. – user755