这是AndroidManifest.xml中application标签下的provider标签:<application>
    ... ...
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.example.examplemodule.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepath"/>
    </provider>
    ... ...
</application>
我想获取属性android:authorities的值,以及meta-data标签下的属性android:resource中引用的资源,这里我引用的是xml,我想获取该xml的内容。
我尝试了使用PackageInfo、ApplicationInfo和ProviderInfo,但是都达不到我的目的。
如何获取属性android:authorities的值和属性android:resource中引用的资源的内容?

解决方案 »

  1.   

    private void getPackageInfo(String packageName) {
    try {
    PackageInfo info = getPackageManager().getPackageInfo(packageName,
    PackageManager.GET_PROVIDERS);
    ProviderInfo[] providers = info.providers;
    for (ProviderInfo provider : providers) {
    Log.d(TAG, "name is " + provider.name);
    Log.d(TAG, "authority is " + provider.authority);
    if (provider.metaData != null) {
    Log.d(TAG, "metadata is " + provider.metaData.toString());
    Log.d(TAG,
    "resource in metadata is "
    + provider.metaData.getString("THE_KEY",
    "Unkonown"));
    }
    }
    } catch (NameNotFoundException e) {
    Log.d(TAG, "package not found");
    e.printStackTrace();
    } }