如何让其他应用知道CONTENT_URI要查找的内容?

时间:2016-05-04 05:25:10

标签: android android-contentprovider android-contacts contactscontract

我一直在研究内容提供商的所有内容,但我无法理解手机上安装的其他应用如何访问我提供的内容的概念。 其他应用程序怎么可能知道我的CONTENT_URI是什么?

我正在制作通讯录应用。其他应用程序如何获取我存储的联系人数据,似乎不可能另一个应用程序知道我为CONTENT_URI设置了什么。 如果其他应用程序基本上只需要知道秘密密钥是什么,那么这是否会破坏内容提供的整个目的?

我希望其他应用能够看到我的联系人应用数据,而不是忽略我的,只是查看股票联系人应用中的数据。

为什么Android会创建ContactsContract提供程序,如果这会导致开发人员使用它来获取联系人数据,因此默认情况下使所有其他第三方联系人应用程序都已过时,因为其他开发人员基本上只编写代码以获取联系人数据股票Android Contact应用程序?

Android似乎无论如何都不会通过ContactsContracts提供商向其他应用提供数据。然而,粗糙的Android使得它非常清晰,容易,并鼓励需要联系人数据的开发人员使用ContactsContract。

这是一个明显的权力攫取?我的联系人应用程序的全部意图是使我的联系人数据更加安全,以便Google无论如何选择或其他任何人都无法收集它。

请有人可以提供建议吗?这不可能是正确的,我希望我在这里被误解了。再一次,仅供参考,我在Android Developer页面上找不到任何涉及我遇到的问题的内容。

1 个答案:

答案 0 :(得分:2)

这绝对不是权力抢夺。联系人嵌入到操作系统中,因为用户需要他们的电话存储电话号码以及与该电话号码相关联的姓名和其他信息。除了让用户可以选择将他们的联系人同步到云端之外,谷歌与翻盖手机当天没有做任何不同的事情。但是,这不是必需的。用户可以将联系人添加到他们的手机中,只需将其与手机相关联即可。

ContactsContract允许应用访问设备上存储的联系人,这只有在用户授权应用访问其联系人后才能访问。有些应用程序使用此功能充当联系人管理器(以不同布局显示用户联系人的应用程序)。一些应用程序为用户提供在线备份其联系人的服务,以防用户不想使用Google(例如FullContact)。但是,大多数应用程序通常会出于其他原因阅读联系人,例如帮助用户找到在其应用中拥有帐户的朋友/熟人/同事/等。

为了解决其他开发人员如何实现应用程序CONTENT_URI的问题,他们通过阅读开发人员的文档来解决这个问题。如果您是提供内容的开发人员,那么您有责任发布必要的文档,以便让其他开发人员了解如何使用您的应用。