연락

2016-09-08 3 views
0
내가 원하는 것은 내가 목록에 항목을 누를 때 연락처 응용 프로그램의 대화 상대의 프로필로 이동하는 것입니다

는 :연락

viewHolder.swipeLayout.setOnLongClickListener(new SwipeLayout.LongClickListener() { 

     public void onLongPress(View view) { 

      Intent goContactIntent = new Intent(Intent.ACTION_VIEW); 
      String contactID = mData.get(position).getId(); 
      Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactID); 
      Toast.makeText(mContext,"uri : "+uri, Toast.LENGTH_LONG).show(); 
      goContactIntent.setData(uri); 
      view.getContext().startActivity(goContactIntent); 
     } 
    }); 

나는 모든 목록을 검색 응용 프로그램이 시작될 때 getContacts()로 연락처 (이름, 전화 번호 및 ID). 적어도 이름과 전화 번호는 작동합니다. "내용 : //com.android.contacts/contacts/780" 와 토스트 (I 구현하지 않았다) : 나는 토스트 때 onLongPress 기능에

public ArrayList<Contact> getContacts() { 
    //Adress of the table in the database 
    Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 

    //Retrieve data 
    String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone._ID}; 

    //Initialize the cursor 
    Cursor people = getContentResolver().query(uri, projection, null, null, null); 

    int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); 
    int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 
    int indexId = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID); 

    ArrayList<Contact> contacts = new ArrayList<Contact>(); 

    //Shaping data 
    people.moveToFirst(); 
    do { 
     String name = people.getString(indexName); 
     String number = people.getString(indexNumber); 
     String contactid = people.getString(indexId); 

     Contact contact1 = new Contact(); 

     contact1.setFirstName(name); 
     contact1.setPhoneNumber(number); 
     contact1.setId(contactid); 

     contacts.add(contact1); 

    } while (people.moveToNext()); 

    return contacts; 
} 

는, 내가 좋아하는 URI를 얻을 "연락 찾을 수 없습니다. "

연락처 애플리케이션으로 이동하는 방법을 알고 있습니다. (그 코드는 작동합니다.) 특정 연락처 프로필을 사용할 수 없습니다.

당신이 URI에 전달

+0

URI에 전달한 ID가 잘못되었습니다. 내가 ContactsContract.RawContacts.CONTACT_ID를 사용하고 있으며 그것은 절대적으로 잘 작동합니다. – Gautam

답변

0

ID가 내가 생각하는 잘못 ... 난 이미 유래를 포함하여 인터넷에 많은 솔루션을 통해 보았다하지만 이러한 솔루션 중 누구도 일을 없다. 내가 ContactsContract.RawContacts.CONTACT_ID을 사용하고 있으며 그것은 절대적으로 잘 작동합니다.