Android 项目中的内容提供程序存储在哪里?

发布于 2024-10-12 11:31:58 字数 485 浏览 4 评论 0 原文

这可能是一个简单的问题,但我很难确定一个直接的答案。

我使用 Eclipse Android ADT 在项目中自己单独的包中创建了一个内容提供程序。该包包含在整个项目的 src 中。修改 AndroidManifest.xml 时,我将其作为 > 的子项包含在内:

 <provider android:name="JobProvider"
      android:authorities="dsndata.sds2Mobile.provider.JobProvider" />

将使用提供程序的代码位于 src 中的单独包中,

其中是存储该提供程序的最佳位置提供商?在与使用它的源相同的包中?另外, android:name 和 android:authorities 的正确值是什么?我确信它们会根据提供程序的存储位置而有所不同。

This might be a simple question, but I've had a hard time pinning down a direct answer.

I have created a content provider in its own separate package in a project using the Eclipse Android ADT. This package is included in the src of the overall project. When modifying AndroidManifest.xml I included this as a child of <application>:

 <provider android:name="JobProvider"
      android:authorities="dsndata.sds2Mobile.provider.JobProvider" />

The code that will be using the provider is in a separate package also in src

Where would be the best place to store the provider? In the same package as the source using it? Also, What are the correct values for android:name and android:authorities? I'm sure they vary depending on where the provider is stored.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-10-19 11:31:59

您可以将您的提供程序存储在应用程序中的任何位置。这取决于您在 ContentProvider 类中提供的 URI 名称。始终记住应用程序中使用的 URI 名称必须具有唯一的权限和路径。

Android:name 是您的 Content Provider 类名及其包名
Android:authorities 是您的 Provider 可用的 URI 内容名称。
欲了解更多信息,请
http://marakana.com/s/post/1375/android_content_provider_tutorial

you can Store your provider any place in your application.it depends upon whats your URI name provide in ContentProvider class.Always remember the URI name use in your Application must have unique authority and Path.

Android:name is your Content Provider class name with its package name
and Android:authorities is your URI content name where your Provider is available.
for more information you
http://marakana.com/s/post/1375/android_content_provider_tutorial

风柔一江水 2024-10-19 11:31:58

您可以将提供程序放置在您喜欢的任何位置。如果您正在编写一个为您的应用程序存储数据的提供程序(并且仅适用于您的应用程序,并且只有您的应用程序使用它),那么将应用程序代码放在自己的包中是最干净的。通常,“provider”是包名称。

至于名称和权限,请参见Manifest文档

android:name 类的名称
实现内容提供者,
ContentProvider 的子类。这
应该是完全限定的类名
(例如,
“com.example.project.TransportationProvider”)。
然而,作为简写,如果第一个
名称的字符是句点,它
附加到包名称后
元素中指定。
没有默认值。名称必须是
指定。

android:authorities 一个或多个的列表
更多 URI 权威机构可识别
内容范围内的数据
提供者。多个权威机构正在
通过将他们的名字分隔开来列出
一个分号。为了避免冲突,
权限名称应该使用
Java 风格的命名约定(例如
com.example.provider.cartoonprovider)。
通常,它是名称
ContentProvider 子类。没有
默认。至少有一个权威机构必须
指定。

内容权限是一个唯一的字符串,用于将 content:// uri(uri 到数据)映射到您的类。 ContentResolver 使用该映射来确定如何将给定请求(通过 URI 标识)提供给正确的类(您的类)。因此需要唯一的字符串。

You can place the provider wherever you like. If you are writing a provider that stores data for your app (and only for your app, and only your app uses it) then it's cleanest to just be right in with the app code in its own package. Typically, 'provider' is the package name.

As for the name and authority, see the Manifest documentation:

android:name The name of the class
that implements the content provider,
a subclass of ContentProvider. This
should be a fully qualified class name
(such as,
"com.example.project.TransportationProvider").
However, as a shorthand, if the first
character of the name is a period, it
is appended to the package name
specified in the element.
There is no default. The name must be
specified.

android:authorities A list of one or
more URI authorities that identify
data under the purview of the content
provider. Multiple authorities are
listed by separating their names with
a semicolon. To avoid conflicts,
authority names should use a
Java-style naming convention (such as
com.example.provider.cartoonprovider).
Typically, it's the name of the
ContentProvider subclass. There is no
default. At least one authority must
be specified.

The content authority is a unique string that is used to map content:// uris (uri to data) to your class. ContentResolver uses that mapping to identify how to serve a given request, which is identified with a URI, to the correct class (yours). Hence the requirements for a unique string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文