如何从您的应用程序(使用NFC)发送联系人并将其保存在接收设备的联系人列表中?

Den*_*nis 5 android nfc contactscontract android-contacts android-beam

如何使用您自己的应用程序(并使用Android Beam)将联系人发送到另一台设备并将其保存在其联系人列表中(即默认联系人应用程序).发送设备上的联系人将由ContactsContract提供商提供.

我最好不要让其他设备运行我的应用程序.内置联系人应用程序(Android的默认应用程序)可以发送和接收联系人.因此,应该可以使用自定义应用程序将联系人发送到内置联系人应用程序.

这个问题答案表明,您可以使用VCARD格式.

目前,我的应用程序将通过电话号码搜索联系人,然后将其显示在新活动(即内置联系人应用程序)中.见下文.

Uri uri = Uri.fromParts("tel", number.getText().toString(), "");
Log.d("ContactPicker", uri.toString());
startActivity(new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, uri));

// Example log message for the number (123)-123-1234 is "tel:(123)%20123-1234"
Run Code Online (Sandbox Code Playgroud)

我更喜欢这样做,但不要认为这是可能的,因为我无法返回找到的联系人(或者如果找不到现有的联系人,则返回创建的联系人).如果我想要发送特定联系人,我需要这些信息.

我可能需要查询所有联系人,找到我正在寻找的联系人并保存其ID.

注意:我正在使用API​​ 14


编辑

我做了一个概念证明应用程序,它执行此操作:https://github.com/dideler/HiFive

该应用程序可能是错误的.它没有维护,但欢迎拉取请求.

NFC*_*guy 2

是的,vCard 就是您的最佳选择。这是内置联系人/联系人应用程序将采用的格式。我相信,这也是应用程序用来存储自己数据的格式。