2017-10-20 9 views
1

新しい連絡先を開始する方法vCardを文字列として保存するのはどうですか? 何らかの形でURIの代わりに未処理のvCardを設定することは可能ですか? の並べ替え:start文字列のvCardとして連絡先を指定する

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

あなたは実際に何をしたいですか?連絡先の詳細を表示しますか?そうであれば、それは文字列からは不可能です。連絡先はContactsContract APIを使用して連絡先DBに挿入する必要があります。 – marmor

+0

はい、連絡先で開きます。私はContactsContractを使用して、アイテムを1つずつ挿入します。一度にvCard全体をインポートすることは可能ですか? –

+0

はAPIではできませんが、Android上のオープンソースの連絡先アプリであれば、そのコードをプロジェクトにコピーできますが、コードが複雑なので、アイテムを1つずつ追加する方が簡単です。 APIではもう一方の方向が可能ですが、連絡先をvcardにエクスポートします。 – marmor

答えて

0

AndroidのAOSPは、連絡先アプリにメッセージングアプリのうち、取り扱いのvCardを動かすように思えるので、それは今可能ですようです。

しかし、純粋にプログラム的なものではなく、受信した連絡先を保存するアカウントを選択するためのUIがユーザーに表示されます。

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

またはコードで:次の意図を実行し、それをテストお使いの携帯電話のダウンロードフォルダにan example vcf fileをダウンロードするに

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

だからあなたのアプリで、あなたが保存する必要がありますあなたの文字列を、連絡先アプリが読める(あなたのアプリのプライベートデータフォルダではない)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

関連する問題