经常用第三方库的同学们应该经常会用到mata-data这个标签,, 比如:

< -data android:name="com.baidu.lbsapi.API_KEY" 

android:value="***************************USER-KEY****************" />

这一段就是百度地图的用户信息配置


那么他的作用很明显就是用来配置用户信息的, 但是百度地图是怎么获取到我们在manifest中定义的信息的呢?

答案是: 我们在配置百度地图的时候不仅在menifest中配置了信息, 还在Application中信息

SDKInitializer.initialize(getApplicationContext());

而这句话里面就包括了百度地图对已 -data的数据的获取;


现在我们自己来尝试进行mata-data数据的获取:

首先我们在menifest中定义 -data, 可以定义在Activity标签下, 也可以定义在application标签下;

我们用activity下的进行尝试:

        <activity android:name=".activity.PrjSelectActivity">            < -data                android:name=" -DATA-TEST"                android:value="i am  -data" />        </activity>

然后再activity中进行如下操作:

    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //1.这里获取 -data对应的参数的值.         try {        //2.首先获取包管理器,通过包管理器,取得组件信息.            //3..getActivityInfo(第一个参数,取得组件的名称.            //new ComponentName(this,  dataActivity.class)用来获取这个组件的信息.            //PackageManager.GET_ _DATA指定取得信息的类型.            ActivityInfo activityInfo = this.getPackageManager().getActivityInfo(                    new ComponentName(this,  dataActivity.class), PackageManager.GET_ _DATA);            Bundle bundle = activityInfo. Data;//返回一个Bundle对象.            //从bundle获取,< -data>设定的值.            String name = bundle.getString(" -DATA-TEST");            String app = bundle.getString("password");        //通过吐司打印出来< -data>设定的值.            Log.e(TAG, name + app);        } catch (NameNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

当然我们也可以用获取到的 -data进行更加详细的操作, 比如百度地图, 当然就是将这个 -data的信息进行验证了.
收藏 打印