将 Room 和 Content Resolver 数据合并到一个对象中

Combine Room and Content Resolver data into one object

我的应用支持添加联系人到便签。

在此过程中,我在我的应用程序数据库中存储了一个 Contact 实体,我主要使用 contactId 来识别联系人。

在我的UI中,名字也应该显示出来。因此,我正在寻找创建组合查询(如 INNER JOIN)的可能性,以便从设备的地址簿中获取我的应用联系人数据以及联系人姓名。

这可能吗?

我的联系方式:

data class Contact(
    @PrimaryKey(autoGenerate = true) @ColumnInfo(name = Database.Contacts.COL_ID) val id: Long,
    @ColumnInfo(name = Database.Contacts.COL_CONTACT_ID) val contactId: Long,
    /* This should be fetched from the content provider. */ val contactName: String,
    @ColumnInfo(name = Database.Contacts.COL_TRANSACTION_ID) val transactionId: Long
) : Model

谢谢!

您无法使用单一内部联接从您的应用程序数据库和 phone 的联系人中获取数据。 您需要分别检索它们。检索它们后,合并结果。 希望这会帮助你。