获取AndroidManifest.xml中的meta-data数值

今天用到的一些东西,在Android的使用过程中meta-data一般可以作为子元素,被包含在<application>,<activity>,<service>中,而在项目过程中取出这个meta-data里面的东西也是方法各不相同:

我们现在只说两个,因为代码比较简单:

首先是在<application>的 ,我们在Manifest.xml文件中的<application>中添加:

 <meta-data
            android:name="MYDATA_APPLICATION"
            android:value="this is my meta-data message for application;" />
然后在,相应的Activity文件中取值:

	try
								{
									ApplicationInfo applicationInfo = this.getPackageManager ( ).getApplicationInfo ( getPackageName ( ) , PackageManager.GET_META_DATA ) ;
									String msg = applicationInfo.metaData.getString ( "MYDATA_APPLICATION" ) ;
									textView.setText ( msg ) ;
								}
							catch ( NameNotFoundException e )
								{
									// TODO 自动生成的 catch 块
									e.printStackTrace ( ) ;
								}
							break ;
注意哦 ,我们在这里使用的是ApplicationInfo这个类帮助我们取值。

然后我们看看<activity>中的取值:首先我们也是在Manifest.xml文件的<activity>中给<meta_data>赋值,

<meta-data
                android:name="MYDATA_ACTIVITY"
                android:value="this is my meta-data message for activity;" />
随后我们在相应的Activity文件中取值:
	try
								{
									ActivityInfo activityInfo = this.getPackageManager ( ).getActivityInfo ( getComponentName ( ) , PackageManager.GET_META_DATA ) ;
									String msg = activityInfo.metaData.getString ( "MYDATA_ACTIVITY" ) ;
									textView.setText ( msg ) ;
								}
							catch ( NameNotFoundException e )
								{
									// TODO 自动生成的 catch 块
									e.printStackTrace ( ) ;
								}
看到了 ,这个时候我们的帮助取值的类是ActivityInfo。

对于<service>看样子很长的样子,我们就稍微的添加一点:

给<meta-data>赋值:额..当然首先你的项目中间要有一个Service

 <service android:name="my" >
            <meta-data
                android:name="MYDATA_SERVICE"
                android:value="this is my meta-data message for service ;" >
            </meta-data>
        </service>
Service所在的Activity文件中间取值:

ComponentName componentName = new ComponentName ( this , TestService.class ) ;
							ServiceInfo info ;
							try
								{
									info = this.getPackageManager ( ).getServiceInfo ( componentName , PackageManager.GET_META_DATA ) ;
									String msg = info.metaData.getString ( "MYDATA_SERVICE" ) ;
									textView.setText ( msg ) ;
								}
							catch ( NameNotFoundException e )
								{
									// TODO 自动生成的 catch 块
									e.printStackTrace ( ) ;
								}
							
							break ;
这个时候我们取值用到的是
ComponentName类

好了,写到这,完了




你可能感兴趣的:(获取AndroidManifest.xml中的meta-data数值)