Android 1.x Contacts.Extensions的自定义帐户类型?

Jon*_*n O 5 android sync motorola contacts android-contentprovider

我正在编写一个具有联系人同步功能的社交网络应用程序.我有工作代码(来自我在这里找到的一个例子),它在同步适配器中将v2.x上的联系人插入.

但是,摩托罗拉模糊软件不识别2.x联系人(我在Droid X上使用2.2 Moto版本).模糊使用联系人1.x API,但我无法找到/理解如何使用它的示例. 此页面显示如何按名称查询,但我想a)添加和b)通过自定义帐户(或可能的MIME)类型进行查询.

我正在使用的v2代码创建一个新的原始联系人,创建一个"StructuredName"数据记录,然后创建自定义MIME类型的数据记录.

如何在1.x API(3级)上执行等效操作?我认为这是Contacts.Extensions类的用途,但文档最多也不清楚.

Jer*_*ady 1

Motorola BLUR 对联系人的修改更多地与设备上的帐户管理方式有关,而与内容提供商的更改关系不大。使用 Motorola BLUR 设备时的真正问题是您需要将ACCOUNT_NAME和设置ACCOUNT_TYPE为与设备兼容的值。

摩托罗拉并不是唯一出现此问题的设备,因为在我的工作中,我发现其他设备的联系人应用程序不能很好地处理添加到设备上的自定义帐户的记录。

在设置过程中,您必须确定运行的设备类型,然后确定将使用哪个帐户来存储联系人。我发现 Samsung Galaxy、HTC Sense 设备和 MOTOBLUR 设备存在例外情况,使用自定义联系人帐户不允许您在联系人应用程序中处理联系人(例如,您可以添加它们,但不能编辑或删除它们)无法将新记录插入您的帐户)。

我无法共享代码,因为它属于我的工作,但我可以告诉您,如果您在 MOTOBLUR 设备上使用以下帐户作为联系人,它将起作用。Verizon 上的摩托罗拉设备有一个备份助理帐户,效果很好,否则我使用默认的 BLUR 帐户,它似乎效果很好。

在设备上查找类型com.motorola.android.buacontactadapter 和名称为“电话”的帐户并使用它。如果该帐户不存在,请查找该类型的帐户com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE并使用该帐户(无论其名称是什么),然后您就可以在摩托罗拉设备上完成设置了。

如果您分享一些代码或您引用的示例的链接,我很乐意更深入地研究。