新しい連絡先を開始する方法vCardを文字列として保存するのはどうですか? 何らかの形でURIの代わりに未処理のvCardを設定することは可能ですか? の並べ替え:start文字列のvCardとして連絡先を指定する
intent.setDataAndType(vcardAsString,"text/x-vcard")
新しい連絡先を開始する方法vCardを文字列として保存するのはどうですか? 何らかの形でURIの代わりに未処理のvCardを設定することは可能ですか? の並べ替え:start文字列のvCardとして連絡先を指定する
intent.setDataAndType(vcardAsString,"text/x-vcard")
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とともにインテントを送信します。
ありがとうございますので、Intentで直接vcardを余分に送ることはできませんか? –
は可能ではないようですが、ここでコードを確認できます:https://github.com/aosp-mirror/platform_packages_apps_contacts/blob/a33aca875ae2135e720385d07d637cf8819c7f8a/src/com/android/contacts/vcard/ImportVCardActivity.java – marmor
あなたは実際に何をしたいですか?連絡先の詳細を表示しますか?そうであれば、それは文字列からは不可能です。連絡先はContactsContract APIを使用して連絡先DBに挿入する必要があります。 – marmor
はい、連絡先で開きます。私はContactsContractを使用して、アイテムを1つずつ挿入します。一度にvCard全体をインポートすることは可能ですか? –
はAPIではできませんが、Android上のオープンソースの連絡先アプリであれば、そのコードをプロジェクトにコピーできますが、コードが複雑なので、アイテムを1つずつ追加する方が簡単です。 APIではもう一方の方向が可能ですが、連絡先をvcardにエクスポートします。 – marmor