在manifest的application,activity,service,receiver,provider标签下,可以配置mete-data来存储数值
<meta-data
android:name="a"
android:value="11" />
获取manifest数值的工具类
public class ManifestUtil {
@SneakyThrows
public static Bundle getApplicationMetaData(Context ctx) {
PackageManager packageManager = ctx.getPackageManager();
ApplicationInfo info = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
return info.metaData;
}
@SneakyThrows
public static Bundle getActivityMetaData(Activity ctx) {
PackageManager packageManager = ctx.getPackageManager();
ActivityInfo info = packageManager.getActivityInfo(ctx.getComponentName(), PackageManager.GET_META_DATA);
return info.metaData;
}
@SneakyThrows
public static Bundle getServiceMetaData(Context ctx, Class<? extends Service> clazz) {
PackageManager packageManager = ctx.getPackageManager();
ServiceInfo info = packageManager.getServiceInfo(new ComponentName(ctx, clazz), PackageManager.GET_META_DATA);
return info.metaData;
}
@SneakyThrows
public static Bundle getReceiverMetaData(Context ctx, Class<? extends BroadcastReceiver> clazz) {
PackageManager packageManager = ctx.getPackageManager();
ActivityInfo info = packageManager.getReceiverInfo(new ComponentName(ctx, clazz), PackageManager.GET_META_DATA);
return info.metaData;
}
@SneakyThrows
public static Bundle getProviderMetaData(Context ctx, Class<? extends ContentProvider> clazz) {
PackageManager packageManager = ctx.getPackageManager();
ProviderInfo info = packageManager.getProviderInfo(new ComponentName(ctx, clazz), PackageManager.GET_META_DATA);
return info.metaData;
}
}
在Activity调用工具类,获取mete-data数值
Bundle bundle = ManifestUtil.getApplicationMetaData(ctx);
TipBox.tip(bundle.getInt("a"));