java - 了解内容提供者和解析器

标签 java android android-contentresolver

我了解内容解析器接受来自客户的请求,并通过将它们定向到具有不同权限的内容提供者来解决这些请求。

我正在浏览 vogellas tutorial ,特别是 queryCalendar 方法,我注意到没有调用 Content Provider。我只看到内容解析器的代码:
ContentResolver cr = getContentResolver();

为什么没有调用Content Provider

最佳答案

因为Content Provider是Android系统自己实现的。如果您查看代码,您会看到这一点:

Uri uri = Calendars.CONTENT_URI;

在Android系统中,某处注册了一个Content Provider来处理Content Provider对该Uri的请求。

简而言之:如果您想将某些数据公开给另一个应用程序(当然,没有人会阻止您在您的应用程序中使用它),您将只面对内容提供者。然后,您需要实现自己的一个(并通过 Uri 公开它)。 Content Resolver 是使用 Uri 与 Content Provider 对话的东西。

你也可以看看this Vogella tutorial查看如何定义您自己的 Content Provider。

关于java - 了解内容提供者和解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951027/

相关文章:

java - 将 Ant 与 PHPUnderControl 一起使用会出现 java.lang.NoClassDefFoundError

android - 如何压缩我的 mp3 文件以减小 apk 文件的大小?

Android 9 (Pie) ContentResolver 查询 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 在 api 28 上返回 null

java - 从 NDK 读取 Settings.Secure -decodeIndirectRef 中的间接引用无效

java - OnRequestPermissionsResultCallback 未在 PreferenceFragment 中触发

java - 定时器类。接受用户输入而不挂起 JForm

java - 在 JList 上设置选定的索引

android - 如何使用 facebook 登录从 Android 应用程序中的后端服务器访问数据?

android - 坚持从 Activity 移植到 fragment

android - 如何将对我的 ContentProvider 的访问限制为仅我的应用程序?