在配置文件AndroidMenifest.xml中,meda-data有以下几种存在位置:
1.配置在<Application></Application>元素中;
2.配置在<Activity></Activity>元素中;
3.配置在<Service></Service>元素中;
4.配置在<Receiver></Receiver>元素中;
下面就根据以上几种位置分别列出获取meda-data值的方式。
1.在<Application></Application>元素中
xml代码如下:
<Application>
......
<meta-data android:name="TEST_NAME" android:value="testValue"/>
......
</Application>
取值方式如下:
ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
String dataValue = appInfo.metaData.getString("TEST_NAME");
2.在<Activity></Activity>元素中
xml代码如下:
<Application>
......
<Activity>
<meta-data android:name="TEST_NAME" android:value="test meta-data in Activity."/>
</Activity>
......
</Application>
取值方式如下:
ActivityInfo info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
String data = info.metaData.getString("TEST_NAME");
3.在<Service></Service>元素中
xml代码如下:
<Application>
......
<Service android:name="ServiceName">
......
<meta-data android:name="TEST_NAME" android:value="test meta-data in Service."/>
</Service>
......
</Appliction>
取值方式如下:
ComponentName componentName = new ComponentName(this,ServiceName.class);
ServiceInfo info = this.getPackageManager().getServiceInfo(componentName,PackageManager.GET_META_DATA);
String data = info.metaData.getString("TEST_NAME");
4.在<Receiver></Receiver>元素中
xml代码如下:
<Application>
......
<Receiver android:name="ReceiverName">
......
<meta-data android:name="TEST_NAME" android:value="test meta-data in Receiver."/>
</Receiver>
......
</Appliction>
取值方式如下:
ComponentName componentName = new ComponentName(context,ReceiverName.class);
ActivityInfo info = this.getPackageManager().getReceiverInfo(componentName,PackageManager.GET_META_DATA);
String data = info.metaData.getString("TEST_NAME");