4

当我在清单 XML 文件中遇到此标记时,我一直在浏览 android-17 的 NotePad 示例应用程序:

    <provider android:name="NotePadProvider"
        android:authorities="com.google.provider.NotePad"
        android:exported="false">
        <grant-uri-permission android:pathPattern=".*" />
    </provider>

我查阅了辩护词,发现它com.google.provider.NotePad被列为提供商的权限之一。我假设这NotePadProvider是引用文件NotePadProvider中定义的类,NotePadProvider.java但我想问一下是否真的如此,以确保我走在正确的轨道上。

另外我想知道它到底是什么com.google.provider.NotePad,在哪里定义,目的是com.google.provider.NotePad什么,这意味着什么com.google.provider.NotePad是提供者的权威。

4

1 回答 1

3

那是ContentProvider

内容提供者是 Android 应用程序的主要构建块之一,为应用程序提供内容。它们封装数据并通过单个 ContentResolver 接口将其提供给应用程序。仅当您需要在多个应用程序之间共享数据时才需要内容提供程序。例如,联系人数据由多个应用程序使用,并且必须存储在内容提供程序中。如果您不需要在多个应用程序之间共享数据,您可以通过 SQLiteDatabase 直接使用数据库。

实际上,com.google.provider.NotePad是一个实现ContentProvider.

来自<provider>

android:authorities 一个或多个 URI 权限列表,用于标识内容提供者提供的数据。通过用分号分隔它们的名称来列出多个权威。为避免冲突,权限名称应使用 Java 风格的命名约定(例如 com.example.provider.cartoonprovider)。通常,它是实现提供程序的 ContentProvider 子类的名称

于 2013-05-31T08:24:55.290 回答