java - 以字符串形式将联系人作为 vCard 启动 Intent

标签 java android android-intent kotlin android-contacts

如何使用存储为字符串的 vCard 启动新的联系人 Intent ? 是否可以以某种方式设置原始 vCard 而不是 URI? 一种:

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

最佳答案

Android 的 AOSP 似乎已将 vcard 处理从消息应用程序移至联系人应用程序,所以现在看来​​这是可能的。

但是,这并不是纯粹的编程方式,用户将看到一个 UI 来选择她想要存储传入联系人的帐户。

要测试它,请下载an example vcf file到手机的下载文件夹,然后运行以下 Intent :

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);

因此,在您的应用中,您需要将字符串保存到 SD 卡上的文件中,通讯录应用可以从中读取(不是您应用的私有(private)数据文件夹),并发送 Intent 以及指向该文件的 uri。

关于java - 以字符串形式将联系人作为 vCard 启动 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846982/

相关文章:

android - 在 Android Studio 中生成 Google App Engine 后端的问题

java - Android studio 数组生成

android - Intent 中的地理在 Android 应用程序中不起作用

java - android 通知不会按时出现

android - 将字符串从服务传递到 Intent

java - 从 Android 中的另一个类访问方法

java - Spring MVC - 在包含多个层次结构的对象中显示和跟踪用户选择

java - 适用于 Windows 7 x64 的 Java EE 6 SDK 在哪里?

java - 多部分 POST 请求不包含上传的文件

java - 从没有数据库的 JavaFX 应用程序保存数据