【问题标题】:Android 1.x Contacts.Extensions for a custom account type?自定义帐户类型的 Android 1.x Contacts.Extensions?
【发布时间】:2012-08-07 23:02:19
【问题描述】:

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

但是,摩托罗拉 Blur 软件无法识别 2.x 联系人(我使用的是基于 Droid X 构建的 2.2 Moto)。 Blur 使用联系人 1.x API,但我无法找到/理解如何使用它的示例。 This page 显示如何按名称查询,但我想 a) 添加和 b) 按自定义帐户(或可能的 MIME)类型查询。

我使用的 v2 代码创建了一个新的原始联系人,创建了一个“StructuredName”数据记录,然后是一个自定义 MIME 类型的数据记录。

如何在 1.x API(级别 3)上进行等效操作?我认为这就是 Contacts.Extensions 类的用途,但文档充其量是不清楚的。

【问题讨论】:

    标签: android contacts sync android-contentprovider motorola


    【解决方案1】:

    摩托罗拉 BLUR 对联系人的修改更多地与设备上的帐户管理方式有关,而与内容提供商的更改无关。使用摩托罗拉 BLUR 设备时的真正问题是,您需要将 ACCOUNT_NAMEACCOUNT_TYPE 设置为适合该设备的值。

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

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

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

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

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

    【讨论】:

    • 我使用的例子是这个:c99.org/2010/01/23/writing-an-android-sync-provider-part-2 我(高兴地)发现在 BLUR > 2.2 (gingerbread+) 上,模糊联系人应用程序会很高兴地找到并使用我的 v2.x API联系人。以前的版本仍然不满意。
    • 摩托罗拉了解了他们的错误,最新版本的 BLUR(稳定版 4 后)将为您工作。不幸的是,他们不会更新旧设备,所以只有时间才能治愈您的病痛。
    • 看来时间已经治愈了这个病。我的用户群几乎都不再是
    【解决方案2】:

    解决你的问题:

    此基础架构仅支持 2.x 联系人结构,当时他们引入了它。

    1.X 设备上的 OEM 联系人应用程序可能会或可能不会类似地工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多