是否可以使用 Room 查询 Android 联系人?

Is it possible to query Android Contacts using Room?

我正在构建一个 Android 应用程序,它使用存储在 Android 数据库中的联系人。

首选方法是使用 ContentResolver,然后使用 query(),因为提供程序公开了应用程序的数据。

很公平..!!!

我可以在这里使用 Room 来查询提供商公开的数据吗? 这是一个很好的方法吗?因为我想利用抽象和编译时检查和内部映射?

不直接。

房间仅供您自己的内部数据库使用。

可以 可以想象每天通过它的 ContentProvider 轮询联系人一次(也许通过一个工作,所以这项工作与其他工作一起完成)。然后可以将此数据插入到您自己的 Room 数据库中。

这可能会引起用户的负面反应(为什么这个应用程序要存储我的联系人?!)。它也不会立即更新,只会在您手动轮询数据时更新。