这是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中引用的资源的内容?
... ...
<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中引用的资源的内容?
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();
} }