获取manifest清单文件的meta-data数据(转载)

如果本文有帮到你请给原作者点赞

在AndroidManifest.xml中,元素可以作为子元素,被包含在元素中,不同的父元素,在应用时读取的方法也不同。

一、在Activity应用元素。

xml代码段:

   

       

    

java代码段:

   ActivityInfo info=this.getPackageManager()
                          .getActivityInfo(getComponentName(),
                          PackageManager.GET_META_DATA);

    String msg =info.metaData.getString("data_Name");

    Log.d(TAG, " msg == " + msg );

如果有复杂的数据要跟组件关联,还可以把数据作为资源来保存,并使用resource属性,把相关的资源ID通知给组件。
xml代码段:

  
    .....  
      
  

java代码段:

 ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(),  
            PackageManager.GET_META_DATA);  
    // 获取到的是 @string/ice 对应的资源id值  
    int value = activityInfo.metaData.getInt("resource_id");  
    Log.d("Activity Tag", "resource_id : " + value);  // Activity Tag﹕ resource_id : 2131361808  

二、在application应用元素。

xml代码段:

  

       

   

java代码段:

    ApplicationInfo appInfo = this.getPackageManager()

                                  .getApplicationInfo(getPackageName(),

                          PackageManager.GET_META_DATA);

    String msg=appInfo.metaData.getString("data_Name");

    Log.d(TAG, " msg == " + msg );

三、在service应用元素。

xml代码段:

   

      

   

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 );

四、在receiver应用元素。

xml代码段:



        

        

            

        


** 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 );

你可能感兴趣的:(获取manifest清单文件的meta-data数据(转载))