android内容提供商AUTHORITIES

内容提供机构的原因是什么?

除了我必须在清单中声明它们之外,我/我为什么要使用它们?

我试图在这个问题上做我的功课,无法find一个体面的,有凝聚力的讨论这个话题。 下面是我能find的最好的东西(另外还有我自己开发的Android开发的四本书):

  1. https://stackoverflow.com/search?q=content+provider+authority
  2. 内容提供者,权限和URI匹配
  3. 获取可用内容提供商的列表
  4. http://developer.android.com/guide/topics/manifest/provider-element.html
  5. http://developer.android.com/guide/topics/providers/content-provider-creating.html

Solutions Collecting From Web of "android内容提供商AUTHORITIES"

pipe理局用于与特定的内容提供者交互,这意味着它必须是唯一的。 这就是为什么将其声明为域名(反向)以及包含提供程序的包的名称的一种良好实践 ,这种方式不太可能是其他开发人员创build具有声明相同权限的内容提供程序的应用程序。

您在清单中声明它,以便您的应用程序和其他应用程序(如果允许它们)可以通过您的内容提供商以uri的forms操作数据:

content://authority-name/data-in-the-provider 

它的作用类似于http url中的域名:

 http://domain-name/data-in-the-site 

我也在寻找解释,并添加到ILovemyPoncho提供的答案,我打这个特定的答案 ,我引用:

而android:权威究竟在问什么?

您的提供商的系统范围唯一标识符。 或更好的全球独一无二 所有提供者都在系统中注册,并且它们需要是唯一的,或者第二个想要使用相同名称的应用程序不能安装。

您最后使用该string通过Uri与您的提供商进行通信

Uri uri = Uri.parse(“content://”+“your.authoritiy.string”)

让我们这样来说吧:有一只无形的手可以方便地向您的应用程序的ContentProvider发送请求。

例如:

  Uri uri = mContext.getContentResolver().insert(NotifireContentProvider2.NOTE_URI, values); 

基本上,您在Android操作系统中所说的是插入数据,给定包含您在XML中定义的权限的URI。 操作系统将search这个特定的内容提供者,并将请求发送给它。 您insert在ContentProvider上insert方法将被调用,并且您必须匹配URI来相应地处理它。

另外,如果你是内容提供者是如此简单,其他人也有类似的权力。 我没有遇到过我提到的那两个问题,但我认为这不会是愉快的。

有权限确保操作系统知道哪个提供程序将数据提供给请求的应用程序,并确保提供程序是提供程序的提供程序。