【发布时间】:2016-05-04 05:25:10
【问题描述】:
我一直在研究有关内容提供程序的所有内容,但我无法理解手机上安装的其他应用程序如何访问我提供的内容的概念。 其他应用怎么可能知道我的 CONTENT_URI 是什么???
我正在制作一个联系人应用程序。其他应用程序如何获取我存储的联系人数据,其他应用程序似乎不可能知道我为 CONTENT_URI 设置的内容。 如果其他应用程序需要基本上知道只有我知道的密钥是什么,这难道不会破坏内容提供的全部目的吗?
我希望其他应用程序可以看到我的联系人应用程序数据,而不是忽略我的,而只查看库存的联系人应用程序以获取数据。
如果 Android 会创建 ContactsContract 提供程序,如果这会导致开发人员使用它来获取联系人数据,因此默认情况下会使所有其他 3rd 方联系人应用程序过时,因为其他开发人员编写代码本质上只是为了从中获取联系人数据库存的 Android 联系人应用程序?
Android 似乎并没有为我提供使用 ContactsContracts 提供程序向其他应用程序提供数据的功能。然而,粗糙的 Android 使其非常清晰、简单,并鼓励需要联系人数据的开发人员使用 ContactsContract。
这是公然的权力争夺吗?我的联系人应用程序的全部目的是让我的联系人数据更加安全,以便 Google 无法收集这些数据(如果他们选择)或其他任何人。
请问有人可以建议吗?这不可能是正确的,我希望我在这里误解了。再次仅供参考,我在 Android 开发者页面上没有找到任何与我遇到的问题相关的内容。
【问题讨论】:
-
使用联系人 ContentProvider 优于库存联系人存储 ContentProvider 有什么好处?作为用户或应用开发者,我为什么要这样做?
-
我当然更愿意使用 ContactsContract 提供程序而不是创建我自己的提供程序,但不幸的是,这就是问题所在。我似乎无法像股票应用程序那样向其他应用程序提供联系数据。我正在构建一个 100% 替代联系人应用程序,您的联系人数据更安全。另外,我只是认为股票应用程序丑陋而笨拙,我可以做得更好。我希望我的供应商准确地提供股票应用程序的数据。为什么 android 不能发布关于我如何做到这一点的文档?这怎么公平?
-
你为什么不写一个 SyncAdapter 并将你自己的数据写入默认的 ContactsProvider 呢?您还可以编写自己的使用常用 ContactsProvider 的联系人应用程序。顺便说一句,股票联系人应用程序和股票联系人存储是 2 个独立的应用程序。库存联系人应用程序只是库存联系人提供程序的“前端”。您可以编写自己的“前端”(就像之前的其他人一样)。
标签: android android-contentprovider android-contacts contactscontract