如何理解Android中的meta-data标签
作者:互联网
是什么?
提供组件额外的数据,它本身就是一个键值对,可以自定义名称和值。
用在哪些位置?
<activity>
<activity-alias>
<application>
<provider>
<receiver>
<service>
怎么用?
- 配置好信息
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fedming.notches">
<application
...
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="meta_act"
android:resource="@string/app_name" />
</activity>
<meta-data
android:name="meta_app"
android:value="value from meta_app" />
</application>
</manifest>
- 代码获取配置信息
//获取value
private String getMetaDataFromApp() {
String value = "";
try {
ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
value = appInfo.metaData.getString("meta_app");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
//获取resource id
private int getMetaDataIdFromAct() {
int resId= 0;
try {
ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(),
PackageManager.GET_META_DATA);
resId= activityInfo.metaData.getInt("meta_act");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return resId;
}
- 查看结果
06-09 21:21:04.624 14238-14238/com.fedming.notches D/fdm: meta_app : value from meta_app
06-09 21:21:04.625 14238-14238/com.fedming.notches D/fdm: meta_act_id : 2131427357, meta_act_string : Notches
什么时候用
接入第三方SDK的鉴权,以及系统属性配置:比如配置屏幕支持比例,配置SearchableActivity
参考文档
主要参考这位大佬的文章
参考2
官方文档
标签:resId,21,value,14238,meta,Android,PackageManager,data 来源: https://blog.csdn.net/weixin_45959314/article/details/123035594