获取元数据信息的步骤:
- 调用 getPackageManager 方法获得当前应用的包管理器
- 调用包管理器的 getActivityInfo 方法获得当前活动的信息对象
- 活动信息对象的 metaData 是 Bundle 包裹类型,调用包裹对象的 getString 即可获得指定名称的参数值
配置 metaData
<meta-data android:name="weather" android:value="晴天"/>
<activity
android:name=".MetaDataActivity"
android:exported="true">
<meta-data android:name="weather" android:value="晴天"/>
</activity>
获取metaData
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meta_data);
TextView tv_meta = findViewById(R.id.tv_meta);
//获取应用包管理
PackageManager packageManager = getPackageManager();
try {
//从应用包管理器中获取当前的活动信息
ActivityInfo info = packageManager.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
//获取活动附加的元数据信息
Bundle bundle = info.metaData;
String weather = bundle.getString("weather");
tv_meta.setText(weather);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
}
案例代码