如何从包含联系人详细信息且对象不在电话簿中的对象生成 .vcf 文件

2023-12-24

我想为一个对象生成一个 .vcf 文件,其中包含姓名、图像、电话号码、传真号码、电子邮件地址、地址等联系信息。该对象未添加到手机的通讯录中,但存储在我的地址簿中。应用。

生成 .vcf 文件后,我可以像这样发送此 vcard

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("**generated.vcf**"), "text/x-vcard");
startActivity(i);

但我不知道如何获取此生成的 .vcf 文件?


实际上生成 .vcf 文件非常容易。看一下VCF格式 http://en.wikipedia.org/wiki/VCard- 这是一个简单的文本文件。您所需要做的就是创建文本文件并使用 VCF 字段将信息写入其中。你最终会得到这样的结果:

Person p = getPerson();

File vcfFile = new File(this.getExternalFilesDir(null), "generated.vcf");
FileWriter fw = new FileWriter(vcfFile);
fw.write("BEGIN:VCARD\r\n");
fw.write("VERSION:3.0\r\n");
fw.write("N:" + p.getSurname() + ";" + p.getFirstName() + "\r\n");
fw.write("FN:" + p.getFirstName() + " " + p.getSurname() + "\r\n");
fw.write("ORG:" + p.getCompanyName() + "\r\n");
fw.write("TITLE:" + p.getTitle() + "\r\n");
fw.write("TEL;TYPE=WORK,VOICE:" + p.getWorkPhone() + "\r\n");
fw.write("TEL;TYPE=HOME,VOICE:" + p.getHomePhone() + "\r\n");
fw.write("ADR;TYPE=WORK:;;" + p.getStreet() + ";" + p.getCity() + ";" + p.getState() + ";" + p.getPostcode() + ";" + p.getCountry() + "\r\n");
fw.write("EMAIL;TYPE=PREF,INTERNET:" + p.getEmailAddress() + "\r\n");
fw.write("END:VCARD\r\n");
fw.close();

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(vcfFile), "text/x-vcard");
startActivity(i);

(请注意,此代码要放置在活动中。如果它不在活动中,则替换this在...前面getExternalFilesDir与一个实例Context.)

您可以根据需要拥有更多或更少的字段。如果你有,, ; or \字段值中的字符,需要使用转义\;要将换行符放入值中,请编写\\n到文件中(即文件本身必须包含\n,第二个斜杠用于转义换行符中的斜杠)。

这段代码相当粗糙,但它应该可以帮助您入门。再次查看一下 VCF 的格式并从那里开始。

Update:感谢@Michael 指出我原来答案中的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从包含联系人详细信息且对象不在电话簿中的对象生成 .vcf 文件 的相关文章

随机推荐

  • Lambda 表达式无法工作,被终止

    使用 lambda 表达式编写 java 8 程序 它没有被执行 而是在 lambda 表达式处终止 没有例外 import java util ArrayList import java util List import java uti
  • 将一个或多个系数设置为特定整数

    我正在使用标准 lm 模型 并且希望将一个或多个变量的系数设置为特定整数 例如 我希望天气和价格变量的系数分别为 647 和 15 我正在使用带有标准公式的 lm 函数 到目前为止我发现的最接近的东西是glm中的offset函数 或者sys
  • Angular2路由器可以激活,带参数吗?

    我已经看到了关于这个具体问题的一些问题 我最近只从事 Angular2 项目 无论如何 我现在遇到了一个问题 在已弃用的路由器中 我在路由的数据部分添加了我的用户角色 我覆盖了 routerOutlet 以便我可以在激活路由之前检查此值 目
  • 最佳实践:创建免费版和付费版时如何处理iOS App的代码差异?

    我想在 App Store 上发布我的 iOS 应用程序的两个版本 一种是付费的 另一种是免费的 到目前为止 我的付费应用程序代码已经完成 现在我想为免费应用程序的 iAd 和 InAppPurchase 添加更多代码 维护这两个版本的最佳
  • 使用 Pandas 和 spaCy 进行标记化

    我正在开发我的第一个 Python 项目 并且拥有相当大的数据集 数十万行 我需要对 5 个文本列 每个 单元格 有多个文本句子 进行一些 nlp 聚类 分类 并且一直在使用 pandas 来组织 构建数据集 我希望对所有 nlp 使用 s
  • 在 Windows 7 64 位上安装 Hg-Git

    我正在尝试安装一段时间Hg Git 插件 http hg git github com 到我的 Windows 7 操作系统 我遇到了一些困难 例如安装 Python 和其他实用程序中描述的这个博客 http blog sadphaeton
  • NoSQL 数据库中的架构迁移脚本

    我有一个一直使用 C 实体框架和 SQL Server 的活动项目 然而 随着 NoSQL 替代方案的可行性日益增加 我正在研究将项目切换为使用 MongoDB 的所有影响 显然 主要的过渡障碍是由于 无模式 造成的 找到了对 C 等语言意
  • 用于反转文件名中日期顺序的批处理脚本

    我想使用批处理脚本来重命名一堆使用以下命名方案的文件 File 2 9 pdf File 3 9 pdf File 4 9 pdf 我想反转数字 使它们变成 File 9 2 pdf File 9 3 pdf File 9 4 pdf 通常
  • 实体框架一对多 IQueryable

    所以 我一直在玩弄这个tutorial https www tutorialspoint com entity framework entity framework first example htm因为我需要优化一些查询 然而 我意识到一
  • 一起转换图像和蒙版(Keras 示例)

    此代码片段取自 Keras API 参考 数据预处理 部分 一起转换图像和蒙版的示例 link https keras io api preprocessing image https keras io api preprocessing
  • Angular 4 调用路由的函数

    我通过 Angular Web 应用程序中的菜单设置了路由 菜单中设置了 routerLinks 如下面的主页链接 a a
  • FileStream.Dispose 是否立即关闭文件?

    我有一些代码 通过使用 MemoryStream WriteTo 将 MemoryStream 保存到 FileStream 来写入文件 文件关闭后再次打开以读取一些元数据 这在 80 90 的情况下有效 另外 20 我收到一个异常 说该文
  • 如何验证 Apple APN 设备令牌 - WCF .NET

    我正在构建一个 WCF REST Web 服务 移动应用程序调用该服务将 Apple 设备令牌插入数据库 我想在插入数据库之前验证设备令牌 是否有办法验证设备令牌以了解其是否有效 我在论坛上进行了搜索 但找不到任何示例代码 在 NET 中
  • 将 UITabBarItem 图像向下移动?

    通常在每个选项卡上UITabBar您有一个小图像和一个命名该选项卡的标题 图像位于选项卡顶部 居中以容纳下面的标题 我的问题是 如果你想要一个只有图像而没有标题的 tabBar 有没有办法将图像向下移动 以便它在选项卡中更好地居中 我目前正
  • 将 iframe 插入到 React 组件中

    我有一个小问题 从服务请求数据后 我得到了一个 iframe 代码作为响应 我想将其作为道具传递给我的模态组件并显示它 但是当我简单地 this props iframe 它在渲染函数中显然将其显示为字符串 在 React 中或使用 JSX
  • 使用 PHP 从纯文本和 HTML 文本的混合创建 PDF [重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 将 HTML CSS 转换为 PDF https stackoverflow com questions 391005 convert html css to pdf with php
  • 在 UITableView 中对齐多个运行时生成的 UILabels

    我有一个UITableView需要通过列出类似的样式来支持内容 But the tricky part is that the amount of Label will vary with each cell some may have o
  • 在 Visual Studio 2015 中从 *.ts 生成 *.js

    当我将 ts 文件添加到 Visual Studio 2015 并对其进行编译时 js 文件不是 ts 的代码隐藏文件 它仅驻留在该文件夹中 而不是 Visual Studio 项目的一部分 这是设计使然还是我破坏了项目中的某些内容 如果是
  • 评估软件最低要求

    有没有办法评估软件的最低要求 我的意思是 我怎样才能发现我的应用程序需要的最小 RAM 量 Thanks 分析器在这里不会为您提供帮助 也不会估计数据结构的大小 探查器当然可以告诉您代码在哪里花费了最多的 CPU 时间 但它不会告诉您是否未
  • 如何从包含联系人详细信息且对象不在电话簿中的对象生成 .vcf 文件

    我想为一个对象生成一个 vcf 文件 其中包含姓名 图像 电话号码 传真号码 电子邮件地址 地址等联系信息 该对象未添加到手机的通讯录中 但存储在我的地址簿中 应用 生成 vcf 文件后 我可以像这样发送此 vcard Intent i n