问题标签 [rawcontacts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 当您需要向联系人添加自定义信息时,如何选择要更新的原始联系人?
如您所知,有聚合的联系人(一个 1),每个联系人都可以有多个原始联系人链接到该联系人(许多 N)
所以它们之间存在 1 个联系人 -> N 个原始联系人关系。
当您需要为您的联系人存储自定义信息时,您必须为其中一个原始联系人存储它。问题是,您如何选择要使用的原始联系人?原始联系人可以属于不同的帐户。
android - 联系人与原始联系人有什么区别?
我有一个用于研究 ContactsContract 的“转储”实用程序,因为我在文档中不太了解它。但是,当我转储联系人时,它会在表中记录 263 条记录,但我设备上的联系人应用程序列出了我有 244 条记录(“显示 244 条联系人。”)
有人可以解释这种差异吗?
我的 Sprint LG 的联系人应用程序具有我同步的每个帐户的显示选项,我已经进入并检查了所有这些帐户,因此不应该有任何过滤。
我在实用程序中使用的主要 URI 是:
后跟(对于上述查询中的每个 _ID):
然后我遍历第一个查询,显示我的投影中的所有列,然后,使用第一个查询循环中的 _ID 字段,我发出第二个查询并转储它的所有列。
为方便起见,此处转置了答案中的项目符号: 有关更详细的说明,请参阅参考资料。更具体地说,我们鼓励您阅读聚合规则。 参考:单击此处查看后面的原始引用文本
- 联系人数据库分为 3 个表联系人、原始联系人和数据。
- 每个表都包含列 (_ID),它是一个自动递增的主
键。- 数据表包含所有联系信息,如电话号码、邮件 ID、
地址等。- 原始联系人指向创建的实际联系人。因此,我们在添加联系人时使用原始联系人。
- 用户不能在联系人表中添加任何数据。 由于联系人聚合,此表中的数据在
内部填充。您的逻辑适用于某些联系人的原因是:联系人的_ID,原始联系人保持不变,直到发生任何联系人聚合。假设您添加了两个同名 abc 的联系人。这里原始联系人的 _ID 增加了两次,而联系人的 _ID 只增加了一次,因为这两个联系人由于联系人的聚合而合并
android - Android:使用原始联系人 ID 正确访问和查询
所以我的应用程序正在尝试将同步适配器集成到 android 本机联系人管理器中。这一切都运行顺利,除了一旦同步联系人,我无法更新它。可以在此处找到有关此特定问题的详细信息:Android:内容解析器查询不应该返回 0 行但我可以简单地说我的内容解析器查询返回 0 值,因为我正在查询错误的 URI,我相信。
当我将原始联系人 ID 写入手机时,我使用以下代码:
当您将新联系人添加到同步列表时,将调用此构造方法:
正如您在构造函数中看到的那样,我正在调用一个名为 newInsertCpo 的方法,可以在此处查看:
现在您可以看到代码,让我解释一下问题。当我创建和编写原始联系人 ID 时,我对 RawContacts.CONTENT_URI 这样做:
但是,当我查询 uri 时,我是这样查询的:
来自 Data.CONTENT_URI。我相信这是我的问题发生的地方。我使用了来自 Android 官方开发网站的示例代码并针对我自己的用途对其进行了定制,但这部分与示例非常吻合。然而它不起作用。我的线索就是我所说的,我正在写信给一个 Uri 并查询另一个。但是我尝试将查询更改为 RawContacts.CONTENT_URI(这会导致异常),并将我写入的 Uri 更改为 Data.CONTENT_URI,这也会导致异常。更令人困惑的是,当我执行 lookupRawContactId 方法时,我会从 Data.CONTENT_URI 获取原始联系人 ID:
所以是的,如果我得到一个返回 rawcontactId 的游标,为什么我会得到 0 个值来查询具有相同 rawcontactId 我返回的相同 Uri?这没有任何意义!有没有人有任何见解?谢谢大家。
android - 将数据关联到 android 联系人
我正在寻找一种将某些数据与手机的所有联系人相关联的方法,因此我一直在尝试处理 ContactsContract.RawContacts.Data 类,但我无法工作。
此外,我认为我可以使用 LookupKey 作为数据库中的主键 >_< 似乎我对这个键的用途有误,因为我所有的联系人都将它设置为 550。(错误的查询?)谁能给我有关于 LookupKey 用途的线索/进一步解释?
基本上,我的应用程序在服务器上查找联系人的姓名,如果在服务器上找到该姓名,我应该将联系人+数据存储在该特定数据库中。
如果我设法让 ContactsContract.RawContacts.Data 类做我想做的事,就可以避免数据库的事情,对吧?
提前致谢。
android - 联系人备份和同步应用程序
我正在处理联系人备份和同步。
目标是将所有联系人的所有详细信息发送到服务器(定义的自定义协议)作为备份。
在应用程序的初始启动期间,所有联系人将排队并发送到服务器。之后,后台服务将一直运行,它会监听新的联系人添加/联系人更新,并且这个新/更新的联系人将由后台服务发送到服务器。
我正在使用RawContactsEntity来获取记录。
我尝试ContentObserver
在 RawContacts/Data 表上使用来获取联系人添加或联系人更改的通知。但是,AFAIK,作为一个整体而不是单个记录的 ID 给出表中更改数据的ContentObserver
通知( )。onChange()
现在我的问题是,如何获得更改/新记录的确切 ID?
我想创建一个备份表来与本机联系人表进行比较并获取更改的记录。但是随着触点数量的增加,性能会急剧下降,这也会影响电池寿命。
您能否建议我,从性能和内存使用的角度来看,实现此联系人备份操作的最佳方法?联系人同步操作还有其他方法吗?
如果有人可以分享可以帮助我的示例,那将非常有帮助。
rawcontacts - 添加联系人 Android 2.3 rawContactId
我是 Java 和开发应用程序的新手,我不知道如何添加联系人。我正在从 android 开发网站上获取:
我的问题是:你用什么代替 rawContactId?它应该是联系人的名字吗?我想继续使用更新的方式在下面添加联系人,但我什至无法获得“传统”的工作方式。帮助?
android - Android:导入的联系人不可见
我正在使用 Adnroid dev SimpleSyncAdapter 示例将基于云的联系人导入我的应用程序。导入运行良好,当我contracts2.db
在模拟器中访问时,所有联系人都在那里raw_contacts
,data
并且contacts
表格似乎已正确填充。这是一个谜题:
- 新导入的联系人在模拟器中不可见。事实上,当我点击“联系人”时,它会给我这样的信息
You don't have any contacts to display
- 当我在我的 N1 手机上运行相同的导入时,我只能看到有关预先存在的匹配联系人的导入信息。如果联系人确实是全新的,则它不会出现在联系人列表中。
- 如果我手动添加联系人,然后运行导入,那么我导入的信息会以相同的名称合并到手动联系人中(合并确定)
- 如果我运行导入然后手动添加联系人,此联系人将不包含基于云的信息(不合并)
这让我认为联系人和原始联系人之间的同步以某种方式在我看到的联系人表中被破坏或损坏_id
,name_raw_contact_id
并且lookup
列明显填充
注意:我在这里发现了非常相似的问题,但不幸的是它没有答案
android - 在 Android 中获取 RawContact 照片的 URI
我知道我可以使用以下方法获取联系人照片的 URI:
有没有办法对 RawContact 做同样的事情?
我试过了:
但它不起作用...
我需要一个 URI 而不是实际 blob 的原因是因为代码在 AppWidget 中,并且在将数据从小部件传递到启动器时似乎有几个兆的硬限制,所以我需要使用 setImageViewUri 而不是设置图像视图位图。
谢谢。
android - 添加 RawContact 使其聚合到现有联系人
我正在尝试将新的 RawContact 添加到现有联系人中,以便我的自定义数据字段显示在原始联系人中。我尝试使用与原始 RawContact 的 DisplayName 匹配的 DisplayName 将 StructuredName Data 行添加到我的新 RawContact。我认为匹配的 DisplayNames 足以聚合两个 RawContacts,但联系人应用程序似乎将两个 RawContacts 显示为不同的联系人。
这是我的代码
android - 查询 Android 联系人以获取 ACCOUNT_TYPE 和 ACCOUNT_NAME
我可以获得联系人列表及其基本信息,例如:姓名。用于备份目的的电话、电子邮件、即时消息、便笺、组织,ContactsContract.Contacts.CONTENT_URI
用于不同信息类型的联系人列表和其他特定 URI。
为了完全恢复所有信息,我需要另外两个字段:
ContactsContract.RawContacts.ACCOUNT_TYPE
ContactsContract.RawContacts.ACCOUNT_NAME
谁能指导我如何获取此信息,从 ContactsContract.Contacts.CONTENT_URI 知道联系人 ID?
谢谢