当前位置:阳光沙滩 >Android > 查看文章

1.Android开发中如何读取meta-data里内容?

这个知识点不长用,但是也有见到的地方,什么地方常用呢?一般是用于配置秘钥之类的,比如说,你要集成一个SDK,要么用静态init的形式,要么就用这个配置的形式啦。

一般来说,当你申请到了sd以后,服务商的后台会提供一个秘钥给你,在配置说明里会要你配置一下。
比如说:

<meta-data
    android:name="app_key"
    android:value="Pbaeasfasd239asdfa94aladfasBrqc9F02c"/>

那么SDK是怎么获取到这些值的呢?我们一步一步来了解!

1.1.Meta-data标签可以放在那里呢?

在开始获取内容之前,我们先看看这个meta-data可以放在那里呢?

其实,可以放在两个地方,一个是application标签下在,一个是可以放在activity的标签下面。

2018-02-01_141541

这里有什么区别呢?放在不同的地方,获取的方式就不一样了。所以我们为什么先讲这个,再讲获取方式

1.2.怎么获取meta-data里的数据呢?

前面说了,放在不同的标签里获取的方式是不一样的。首先,我们是获取application里的:

            ApplicationInfo applicationInfo = this.getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);
            Bundle applicationMetaData = applicationInfo.metaData;
            String appKey = applicationMetaData.getString("app_key");
            Log.d(TAG, "appKey == " + appKey);

activity标签里的meta-data获取方式:

            ActivityInfo activityInfo = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA);
            Bundle activityMetaData = activityInfo.metaData;
            String testData = activityMetaData.getString("mate_data_test");
            Log.d(TAG, "testData == " + testData);

就是这么简单,下面是全部代码的截图和运行的结果:
2018-02-01_142135

运行结果:
2018-02-01_144642

1.3.meta-data的value里可以放什么内容呢?

我们知道放在那里了,也 知道怎么获取对应的内容了,下面我们看看value里可以放什么内容

2018-02-01_145242

我们可以发现,它可以填写好多东西呢!

但是:假设我们填写的是@drawable/XXX,获取到的值是什么呢?
是int,也就是该资源的id。

所以,主要还是我们的get方法:
可以getBoolean可以getString,可以getInt…其实是支持基本数据类型。

2018-02-01_145557

所以说,我们可以放这些内容。

好啦,关于meta-data的获取就说到这里吧,欢迎转载并注明出处!

7K
为您推荐
各种观点