获取manifest清单文件的meta-data数据
转自: http://www.2cto.com/kf/201303/194824.html
android 开发中:
在
AndroidManifest.xml中,<meta-data>元素可以作为子元素,
被包含在<activity>、<application> 、<service>和<receiver>元素中,
不同的父元素,在应用时读取的方法也不同。
1 :在Activity应用<meta-data>元素。
xml代码段:
1
2
3
|
<
activity...
>
<
meta-data
android:name="data_Name" android:value="hello my activity"></
meta-data
>
</
activity
>
|
java代码段:
1
2
3
4
5
|
ActivityInfo info=
this
.getPackageManager()
.getActivityInfo(getComponentName(),
PackageManager.GET_META_DATA);
String msg =info.metaData.getString(
"data_Name"
);
Log.d(TAG,
" msg == "
+ msg );
|
2:在application应用<meta-data>元素。
xml代码段:
<application...> <meta-data android:value="hello my application" android:name="data_Name"></meta-data> </application>
java代码段:
ApplicationInfo appInfo = this.getPackageManager() .getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); String msg=appInfo.metaData.getString("data_Name"); Log.d(TAG, " msg == " + msg );
3:在service应用<meta-data>元素。
xml代码段:
<service android:name="MetaDataService"> <meta-data android:value="hello my service" android:name="data_Name"></meta-data> </service>
java代码段:
ComponentName cn=new ComponentName(this, MetaDataService.class); ServiceInfo info=this.getPackageManager() .getServiceInfo(cn, PackageManager.GET_META_DATA); String msg=info.metaData.getString("data_Name"); Log.d(TAG, " msg == " + msg );
4: 在receiver应用<meta-data>元素。
xml代码段:
<receiver android:name="MetaDataReceiver"> <meta-data android:value="hello my receiver" android:name="data_Name"></meta-data> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"></action> </intent-filter> </receiver>
java代码段:
ComponentName cn=new ComponentName(context, MetaDataReceiver.class); ActivityInfo info=context.getPackageManager() .getReceiverInfo(cn, PackageManager.GET_META_DATA); String msg=info.metaData.getString("data_Name"); Log.d(TAG, " msg == " + msg );
/****
* 有时候我们并不知道在meta-data里面是string还是int,导致我们无法使用getstring还是getint,这个时候我们就可以使用get方法就可以获取到了
*****/