如何获得AndroidManifest.xml中的各属性key、value和标签值?

weixin_42004869 2018-06-26 05:55:53
这是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的内容。
我尝试了使用PackageInfoApplicationInfoProviderInfo,但是都达不到我的目的。
如何获取属性android:authorities的值和属性android:resource中引用的资源的内容?
...全文
685 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoleigs 2018-07-05
  • 打赏
  • 举报
回复
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();
}

}

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧