Android 清单 XML 提供程序标记。安卓:当局

Eae*_*Eae 5 provider android authority manifest

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

    <provider android:name="NotePadProvider"
        android:authorities="com.google.provider.NotePad"
        android:exported="false">
        <grant-uri-permission android:pathPattern=".*" />
    </provider>
Run Code Online (Sandbox Code Playgroud)

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

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

Sam*_*Rad 3

这就是ContentProvider

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

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

<provider>

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

  • 当我提供两个权威时我遇到了问题。尽管文档说用分号分隔它们,但它不起作用。如果存在分号,我什至无法构建该项目。如何设置多个权限?例如,这不起作用: android:authorities="${applicationId}.MainActivity;${applicationId}.contactview.ContactViewWithViewPagerTabActivity" (5认同)