我正在编写一个具有联系人同步功能的社交网络应用程序。我有工作代码(来 self 发现的示例 here ),它在同步适配器中插入 v2.x 上的联系人。
但是,Motorola Blur 软件无法识别 2.x 联系人(我使用的是基于 Droid X 构建的 2.2 Moto)。 Blur 使用 contacts 1.x API,但我无法找到/理解如何使用它的示例。 This page显示如何按名称查询,但我想 a) 添加和 b) 按自定义帐户(或可能的 MIME)类型查询。
我使用的 v2 代码创建了一个新的原始联系人,创建了一个“StructuredName”数据记录,然后是一个自定义 MIME 类型的数据记录。
我如何在 1.x API(级别 3)上执行等效操作?我认为这就是 Contacts.Extensions 类的用途,但文档最多不清楚。
最佳答案
摩托罗拉 BLUR 对联系人的修改更多地与设备上的帐户管理方式有关,而与内容提供商的更改关系不大。使用摩托罗拉 BLUR 设备时的真正问题是您需要将 ACCOUNT_NAME
和 ACCOUNT_TYPE
设置为适合该设备的值。
摩托罗拉并不是唯一存在此问题的设备,因为在我的工作中,我发现其他设备的联系人应用程序不能很好地处理添加到设备上自定义帐户的记录。
在安装过程中,您必须确定运行的设备类型,然后确定将使用哪个帐户来存储您的联系人。我发现了 Samsung Galaxy、HTC Sense 设备和 MOTOBLUR 设备的异常(exception)情况,使用自定义联系人帐户不允许您在联系人应用程序中使用您的联系人(例如,您可以添加他们,但不能编辑或无法向您的帐户插入新记录)。
我不能分享代码,因为它属于我的工作,但我可以告诉你,如果你在 MOTOBLUR 设备上使用以下帐户作为你的联系人,它就可以工作。 Verizon 上的摩托罗拉设备有一个备份助手帐户,效果很好,而我使用默认的 BLUR 帐户似乎效果很好。
在设备上查找类型为 com.motorola.android.buacontactadapter
的帐户
和“电话”的名称并使用它。如果不存在,请查找类型为 com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE
的帐户并使用它(不管它的名称是什么),您将在摩托罗拉设备上全部设置.
如果您分享您的一些代码或指向您引用的示例的链接,我很乐意深入探讨。
关于自定义帐户类型的 Android 1.x Contacts.Extensions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082757/