2013-03-22 5 views
1

기본 사용자/연락처 활동을 시작하고 과 같은 구조화 된 데이터를 성, 전화 유형, 도시, 우편 번호 및 이와 유사한 데이터로 분리하여 전달할 수 있습니다. 내가 유사한 코드 다음 사용새 연락처 활동 추가 및 구조화 된 데이터 전달

Intent addContactIntent = new Intent(Intent.ACTION_INSERT); 
addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);    
addContactIntent.putExtra(ContactsContract.Intents.Insert.POSTAL, "abc 2343");  
startActivity(addContactIntent); 

이 잘 작동하지만 예를 들어 우편 번호입니다 지정할 수 없으며, 도시 또는 장소 것입니다. 샘플 like this here을 찾았지만 이전에 새 연락처 의도를 추가하기 시작할 수 없으므로 연락처를 저장하기 전에 사용자가 무언가를 편집 할 수 없습니다. 코드는 사용자 상호 작용없이 연락처를 즉시 저장합니다.

도움이 될 것입니다.

+0

아무도 없습니까? 핑 ... –

답변

0

주소록 필드에 대해 여러 개의 데이터 항목을 삽입하도록 설계된 ContactsContract.Intents.Insert.DATA를 사용할 수 있습니다. 그러나 실제 문제는 API 이전에는 사용할 수 없습니다 11.

다음은 작동 방법입니다.

ArrayList<ContentValues> data = new ArrayList<ContentValues>(); 
    //Email 
    ContentValues row1 = new ContentValues(); 
    row1.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 
    row1.put(Email.ADDRESS, "ADDRESSme"); 
    data.add(row1); 

    //Website 
    ContentValues row2 = new ContentValues(); 
    row2.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE); 
    row2.put(Website.URL, "URLme"); 
    data.add(row2); 
    //Address 
    ContentValues row4 = new ContentValues(); 
    row4.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE); 
    row4.put(StructuredPostal.CITY, "CityMe");//Pre populating city 
    row4.put(StructuredPostal.COUNTRY, "COUNTRYme");//Pre populating country 
    row4.put(StructuredPostal.STREET, "STREETme");////Pre populating street 
    row4.put(StructuredPostal.POSTCODE, "POSTCODEme");// 
    data.add(row4); 

    Intent i = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI); 
    i.putParcelableArrayListExtra(Insert.DATA, data); 
+0

어디서 구조화 된 주소가 의도의 연락처 편집기에 나타나지 않는지 찾고 싶습니까? 웹 사이트와 StructuredPostal을 같은 ArrayList 의 두 개의 별개의 행으로 전달하지만 편집기에만 웹 사이트가 표시됩니다. 주소 구성 요소 중 어느 것도 null이 아닌지 확인했습니다. –

관련 문제