Получать метаинформацию activityInfo в методе onCreate

Мне нужно получить значение из файла AndroidManifest.xml , сохраненного в виде метаданных:

 <meta-data android:value="3" android:name="myInterestingValue" /> 

В методе onCreate я вызываю следующий метод:

 private Object getMetaData(String name) { try { ActivityInfo ai = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA); Bundle metaData = ai.metaData; if(metaData == null) { debug("metaData is null. Unable to get meta data for " + name); } else { Object value = (Object)metaData.get(name); return value; } } catch (NameNotFoundException e) { e.printStackTrace(); } return null; } 

Но metaData всегда имеет значение null. Невозможно ли получить доступ к metaData в методе onCreate ? Т.е. активность еще не полностью инициализирована.

Вам нужно будет использовать флаги GET_ACTIVITIES и GET_META_DATA .

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

Если вам интересно, андроид-метаданные – это структура, которая упрощает получение метаданных из манифеста Android. Как вы могли бы получить метаданные выше, используя андроид-метаданные :

 int val = ManifestMetadata.get (context).getValue ("myInterestingValue", Integer.class); 

Полное раскрытие: я создатель андроидов-метаданных.

Я пробовал ответ Джейсона, но он не работает. Чтобы получить метаданные из файла манифеста, я должен получить следующий код

 ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); Bundle bundle = ai.metaData;