如何在来电屏幕上实现"contact"按钮

How to achieve a "contact" button on incoming call screen

最近我安装了一个名为"Ringo"的应用程序,他们正在做的是另一回事。但是当他们打电话给您的 phone 时,看到一个 "contact" 按钮让我感到惊讶。请参阅随附的屏幕截图。

他们基本上在我的地址簿中创建了一个带有图像的联系人,当他们使用添加的号码之一拨打我的 phone 号码时,我得到了这个屏幕,这个屏幕与通常的联系人来电屏幕不同。如果我为联系人设置图像,当他们给我打电话时,我会得到该联系人的全屏图像。名称居中对齐,没有按钮可以转到该联系人。

我希望实现同样的目标。在地址簿中添加联系人时,这是某种设置吗?或者这是某种把戏。

实际上有两种类型的图像可以与联系人关联:

  • 一张"large"图片,只能在设备本身上设置,据说不能通过iCloud同步。以编程方式,这将通过 ABPersonSetImageData

  • 进行操作
  • 较小的 "photo" 和 "logo" 图像,可能包含在 vCard 中(参见 https://en.wikipedia.org/wiki/VCard#Properties 中的 PHOTOLOGO ).

我相信前者是全屏显示的,而后者(或者可能只是两者之一)显示为右上角的小图标。

我还没有找到设置这些的直接方法,但您可以生成 vCard 并将其传递给 ABPersonCreatePeopleInSourceWithVCardRepresentation。您必须包含图像的 URL 或 base-64 表示形式。

或者,它可能只是基于图片的大小,但我不知道确切的阈值是多少,考虑到 Retina 大小等