一、前言:当我们引用第三方SDK时,有些需要验证token,获取清单文件中的token值,我也不是很清楚,整个代码跑下来就是获取了清单文件中的一个值,以后用到在慢慢研究。
1.调用getPackageManager方法获得当前应用的包管理器
2.调用包管理器的getActivityInfo方法获得当前活动的信息对象
3.活动信息对象的metaData是Bundle包裹类型,调用包裹对象getString即可获得指定名称的参数值
二、上代码
新建一个MetaDataActivity
public class MetaDataActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meta_data);
TextView tv_meta = findViewById(R.id.tv_meta);
PackageManager pm = getPackageManager();
try {
ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
Bundle bundle = info.metaData;
String weather = bundle.getString("weather");
tv_meta.setText(weather);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
}
}
对应的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MetaDataActivity">
<TextView
android:id="@+id/tv_meta"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
我们需要获取的是划红线的值
运行结果: