2014-03-30 6 views
0

id/lookupkey를 사용하여 단일 연락처 및 일부 관련 데이터 (예 : 이메일, 전화 번호, 주소 ...)를 검색하려면 어떻게해야합니까?단일 연락처를 검색하는 방법

이것은 연락처를 추가하는 데 사용하는 코드입니다 (실제로 인터넷에서 가져온 코드이며 나를 위해 일하고 있습니다).

// Asking the Contact provider to create a new contact 
    try { 
     result = this.context.getContentResolver().applyBatch(
       ContactsContract.AUTHORITY, ops); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Toast.makeText(this.context, "Exception: " + e.getMessage(), 
       Toast.LENGTH_SHORT).show(); 
    } 

    Uri myContactUri = result[0].uri; 
    int lastSlash = myContactUri.toString().lastIndexOf("/"); 
    int length = myContactUri.toString().length(); 
    int contactID = Integer.parseInt((String) myContactUri.toString() 
      .subSequence(lastSlash + 1, length)); 

    return contactID; 

이제이 새 연락처를 가져오고 싶습니다. 어떻게해야합니까? 내가 생각해내는 것은 다음과 같습니다.

ContentResolver content = context.getContentResolver(); 

    String[] projection = { Data.LOOKUP_KEY, Data.MIMETYPE, 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.NUMBER, 
      ContactsContract.CommonDataKinds.Email.ADDRESS }; 

    // Defines the selection clause 
    String selection = Data.LOOKUP_KEY + " = ?"; 

    // Defines the sort order 
    String sortOrder = Data.LOOKUP_KEY; 

    String[] args = {"2400"}; 

    Cursor cursor = content.query(Data.CONTENT_URI, projection, selection, 
      args, sortOrder); 

선택을 제거하면 모든 연락처와 모든 데이터가 삭제됩니다. 그래서 저는 제 경우에 2400이라는 키를 찾아보고 lookupkey로이 연락처를 가져 오려고했습니다. 음, 작동하지 않습니다. cursor.getCount()는 0을 반환합니다.

아이디어가 있으십니까?

String[] projection = { Data.MIMETYPE, 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.NUMBER, 
      ContactsContract.CommonDataKinds.Email.ADDRESS }; 

    // Defines the selection clause 
    String selection = ContactsContract.Data.RAW_CONTACT_ID + "=?"; 

    // Defines the sort order 
    String sortOrder = Data.LOOKUP_KEY; 

    String[] args = { id+"" }; 

    Cursor cursor = content.query(Data.CONTENT_URI, projection, selection, 
      args, sortOrder); 

정렬 순서 나던 문제,하지만 난 잘 작동 RAW_CONTACT_ID을 사용

답변

0

내 솔루션은 이제 다음에 사용하는 것입니다!