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定義を調べたところ、プロバイダーの権限の 1 つとしてリストされていることがわかりました。ファイルで定義されNotePadProviderたクラスを参照していると仮定していますが、正しい軌道に乗っていることを確認するために、それが本当に当てはまるかどうかを尋ねたいと思います。NotePadProviderNotePadProvider.java

また、正確にはcom.google.provider.NotePad何が定義されているのか、どこで定義されているのか、目的は何なのか、それがプロバイダーの権限であるcom.google.provider.NotePadことは何を意味するのか疑問に思っています。com.google.provider.NotePad

4

1 に答える 1

3

それがContentProviderです。

コンテンツ プロバイダーは、Android アプリケーションの主要な構成要素の 1 つであり、アプリケーションにコンテンツを提供します。それらはデータをカプセル化し、単一の ContentResolver インターフェイスを介してアプリケーションに提供します。コンテンツ プロバイダーは、複数のアプリケーション間でデータを共有する必要がある場合にのみ必要です。たとえば、連絡先データは複数のアプリケーションで使用され、コンテンツ プロバイダーに格納する必要があります。複数のアプリケーション間でデータを共有する必要がない場合は、SQLiteDatabase を介してデータベースを直接使用できます。

実際にcom.google.provider.NotePadは、 を実装するクラスですContentProvider

から<provider>:

android:authorities コンテンツ プロバイダが提供するデータを識別する 1 つ以上の URI 機関のリスト。複数の機関は、名前をセミコロンで区切ってリストします。競合を避けるために、機関名は Java スタイルの命名規則 (com.example.provider.cartoonprovider など) を使用する必要があります。通常、プロバイダーを実装する ContentProvider サブクラスの名前です。

于 2013-05-31T08:24:55.290 に答える