2017-10-20 19 views
1

새 연락처 시작 방법 vCard가 문자열로 저장된 의도? URI 대신 원시 vCard를 설정할 수 있습니까? 의 일종 : 안드로이드의 AOSP가 연락처 응용 프로그램에 메시징 응용 프로그램에서 처리 vCard를 이동처럼start 문자열에서 vCard로 연락하려는 의도

intent.setDataAndType(vcardAsString,"text/x-vcard") 
+0

의도가 실제로 무엇을 하시겠습니까? 연락처 세부 정보를 표시 하시겠습니까? 그렇다면 문자열에서 가능하지 않습니다. ContactsContract API를 사용하여 연락처 DB에 연락처를 삽입해야합니다. – marmor

+0

예, 연락처에서 열려고합니다. 지금 ContactsContract를 사용하여 항목을 하나씩 삽입합니다. 한 번에 전체 vCard를 가져올 수 있습니까? –

+0

은 API에서는 불가능하지만 Android의 오픈 소스 연락처 앱을 사용하면 해당 코드를 프로젝트에 복사 할 수 있지만 코드가 복잡해 항목을 하나씩 추가하는 것이 더 간단합니다. 연락처를 vcard로 내보내는 다른 방향이 API에서 가능합니다. – marmor

답변

0

보인다, 그래서 지금 가능 보인다.

그러나 프로그래밍 방식이 아니라 사용자에게 수신 연락처를 저장하려는 계정을 선택하는 UI가 제공됩니다.

adb shell am start -a "android.intent.action.VIEW" -t "text/vcard" -d "file:///sdcard/Download/john-doe.vcf" 

또는 코드에

: 앱에 따라서

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("file:///sdcard/Download/john-doe.vcf")); 
intent.setType("text/vcard"); 
startActivity(intent); 

, 당신은 저장해야

다음 실행, 다음과 같은 의도를, 그것을 테스트 휴대 전화의 다운로드 폴더에 an example vcf file을 다운로드하려면 연락처 앱이 읽을 수있는 SD 카드의 파일 (앱의 개인 데이터 폴더 아님)에 문자열을 추가하고 해당 파일을 가리키는 URI와 함께 인 텐트를 보냅니다.

+0

고맙습니다. 따라서 Intent에서 직접 vcard를 추가로 보낼 수 없습니까? –

+1

이 가능한 것처럼 보이지 않는 경우 여기에서 코드를 확인할 수 있습니다. https://github.com/aosp-mirror/platform_packages_apps_contacts/blob/a33aca875ae2135e720385d07d637cf8819c7f8a/src/com/android/contacts/vcard/ImportVCardActivity.java – marmor